请教一个UDP接收数据并显示的问题

bd7iwd

请教一下各位:我在同一个实例里面放置两种协议,其中UDP拿来接收硬件推上来的数据,HTTP用于WEB显示数据。我该怎么操作?

[attach]357[/attach]

上图为我凭着感觉瞎写的,在connection部分不知道该怎么操作了
我希望实现的流程如下图:

[attach]358[/attach]

2577 2 0
2个回答

walkor
<?php
  require_once __DIR__ . '/../Workerman/Autoloader.php';
  use Workerman\Worker;
  $ws_worker = new Worker('websocket://0.0.0.0:1234');
  $ws_worker->onWorkerStart = function($ws_worker) {
      $udp_worker = new Worker('udp://0.0.0.0:5678');
      $udp_worker->onMessage = function($udp_connection, $data)use($ws_worker) {
          foreach($ws_worker->connections as $ws_connection) {
              $ws_connection->send($data);
          }
      };
      $udp_worker->listen();
  };

  $http_worker = new Worker('http://0.0.0.0:8080');
  $http_worker->onMessage = function($http_connection, $http_data) {
      $http_connection->send('
  <script>
      var ws = new WebSocket("ws://127.0.0.1:1234");
      ws.onmessage = function(e){
          alert(e.data)
      };
  </script>');
  };
  Worker::runAll();
  • dawn 2016-07-27

    ws_worker count不为1的话,udp_worker需要开启端口复用吗?

  • walkor 2016-07-27

    这个例子中只能为1

walkor

浏览器访问8080端口,
udp数据发送到5678端口,数据会在8080端口的网页上弹出来。

  • 暂无评论
年代过于久远,无法发表回答
🔝