CmdSubser.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/5/21
  6. * Time: 16:57
  7. */
  8. namespace app\logic\cmdpro;
  9. use app\lib\DataPack;
  10. use app\lib\Wlog;
  11. use app\logic\cmdpro\CmdInf as CmdInf;
  12. class CmdSubser extends CmdInf
  13. {
  14. public function index_msg($serv, $task)
  15. {
  16. go(function () use ($serv, $task) {
  17. $pack = json_decode($task->data->data, true);
  18. $msgarr = $pack['data'];
  19. if (!is_array($msgarr)) {
  20. return;
  21. }
  22. foreach ($msgarr as $msg) {
  23. $msg = DataPack::toJson(['mtype' => 'system_msg', 'stype' => 'index_msg', 'data' => $msg]);
  24. $this->onlineBroad($serv, $msg);
  25. }
  26. });
  27. }
  28. public function msg_board($serv, $task)
  29. {
  30. go(function () use ($serv, $task) {
  31. $pack = json_decode($task->data->data, true);
  32. $msgarr = $pack['data'];
  33. if (!is_array($msgarr)) {
  34. return;
  35. }
  36. foreach ($msgarr as $msg) {
  37. $stype = $msg['stype'];
  38. $data = $msg['data'];
  39. $msg = DataPack::toJson(['mtype' => 'system_msg', 'stype' => $stype, 'data' => $data]);
  40. $this->onlineBroad($serv, $msg);
  41. }
  42. });
  43. }
  44. public function msg_to_one_user($serv, $task)
  45. {
  46. go(function () use ($serv, $task) {
  47. $pack = json_decode($task->data->data, true);
  48. $msgarr = $pack['data'];
  49. if (!is_array($msgarr)) {
  50. return;
  51. }
  52. foreach ($msgarr as $msg) {
  53. $msgJson = DataPack::toJson($msg);
  54. $this->sendToUid($serv, $msg['to'], $msgJson);
  55. }
  56. });
  57. }
  58. public function do_tick($serv, $task)
  59. {
  60. $pack = json_decode($task->data->data, true);
  61. $datas = $pack['data'];
  62. if (!is_array($datas)) {
  63. Wlog::getInstance()->WriteLog("无效的数据格式dotick:" . $task->data->data);
  64. return;
  65. }
  66. foreach ($datas as $key => $val) {
  67. $uid = $val['uid'];
  68. $msg = $val['msg'];
  69. $fid = $serv->utable->get($uid, 'fid');
  70. if ($fid) {
  71. $this->sendTo($serv, $fid, $msg);
  72. $serv->disconnect($fid);
  73. }
  74. }
  75. return true;
  76. }
  77. }