WebSocketServer.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\common\workman;
  3. use Workerman\Worker;
  4. /**
  5. * websocket服务器
  6. * Class WebSocketServer
  7. * @package app\common\workman
  8. */
  9. class WebSocketServer
  10. {
  11. protected $worker;//websocket实例
  12. /**
  13. * 构造方法
  14. * WebSocketServer constructor.
  15. */
  16. public function __construct()
  17. {
  18. }
  19. /**
  20. * 启动
  21. */
  22. public function start()
  23. {
  24. $host="websocket://0.0.0.0:23456";//定义协议和端口,后续可以放到配置中
  25. $this->worker=new Worker($host);
  26. $this->worker->count=4;
  27. $this->run();
  28. }
  29. /**
  30. * 业务方法,业务写在这里
  31. */
  32. private function run()
  33. {
  34. $this->worker->onMessage = function ($connection, $data) {
  35. // 向浏览器发送hello world
  36. $connection->send('hello world,i am server');
  37. /* echo date("Y-m-d H:i:s:");
  38. echo $data;
  39. echo "\n";*/
  40. $tlv=new Tlv();
  41. $result=$tlv->Read($data);
  42. echo "[tlv]".date("Y-m-d H:i:s:");
  43. print_r( $result);
  44. echo "\n";
  45. };
  46. Worker::runAll();
  47. }
  48. }