ugc_srv.php 2.9 KB

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