ugc_srv.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/7/19
  6. * Time: 下午2:53
  7. */
  8. require_once(BASE_ROOT_PATH . '/global.php');
  9. define('UGC_SUBSCRIBER_PROC',true);
  10. require_once(BASE_ROOT_PATH . '/fooder.php');
  11. require_once(BASE_HELPER_PATH . '/event_looper.php');
  12. require_once(BASE_HELPER_PATH . '/algorithm.php');
  13. require_once(BASE_HELPER_PATH . '/message/msgstates.php');
  14. require_once(BASE_HELPER_PATH . '/message/msgutil.php');
  15. require_once(BASE_HELPER_PATH . '/message/subscriber.php');
  16. require_once(BASE_HELPER_PATH . '/ugc_helper.php');
  17. require_once(BASE_HELPER_PATH . '/search/tcp_client.php');
  18. function all_channels() {
  19. return ['special','follow','inviter'];
  20. }
  21. $gMessageStates = null;
  22. $gMessageLock = null;
  23. class UgcHandler
  24. {
  25. static public function onSpecial($msg)
  26. {
  27. if(empty($msg)) return false;
  28. $content = unserialize($msg);
  29. if($content == false || !is_array($content)) {
  30. return false;
  31. }
  32. $type = $content['type'];
  33. $params = $content['params'];
  34. if($type == 'add') {
  35. search\relation_client::instance()->add_special(['user_id' => $params['user_id'],'specials' => $params['specials']]);
  36. }
  37. elseif($type == 'del') {
  38. search\relation_client::instance()->del_special(['user_id' => $params['user_id'],'specials' => $params['specials']]);
  39. }
  40. else {
  41. }
  42. return true;
  43. }
  44. static public function onFellow($msg)
  45. {
  46. if(empty($msg)) return false;
  47. $content = unserialize($msg);
  48. if($content == false || !is_array($content)) {
  49. return false;
  50. }
  51. $type = $content['type'];
  52. $params = $content['params'];
  53. if($type == 'add') {
  54. search\relation_client::instance()->add_follow(['user_id' => $params['user_id'],'friends' => $params['friends']]);
  55. }
  56. elseif($type == 'del') {
  57. search\relation_client::instance()->del_follow(['user_id' => $params['user_id'],'friends' => $params['friends']]);
  58. }
  59. else {
  60. }
  61. return true;
  62. }
  63. static public function onInviter($msg)
  64. {
  65. if(empty($msg)) return false;
  66. $content = unserialize($msg);
  67. if($content == false || !is_array($content)) {
  68. return false;
  69. }
  70. $type = $content['type'];
  71. $params = $content['params'];
  72. if($type == 'add') {
  73. search\relation_client::instance()->add_inviter(['user_id' => $params['user_id'],'inviter_id' => $params['inviter_id']]);
  74. }
  75. else {
  76. }
  77. return true;
  78. }
  79. }
  80. function work_proc()
  81. {
  82. global $gMessageStates;
  83. global $gMessageLock;
  84. $gMessageStates = new MsgStates();
  85. $gMessageLock = Mutex::create();
  86. Base::run_util();
  87. ugc_helper::init_server();
  88. StatesHelper::init();
  89. $listener = new message\subscriber($gMessageStates);
  90. $listener->run();
  91. }
  92. event\util::fork_worker('work_proc',1);