【2022/1/4】TCP和websocket通讯

TCP和websocket通讯

使用场景:通过网页控制硬件设备,或者硬件设备的信息显示到网页上
所用技术
  1. PHP环境
  2. workerman
实现原理
启动一个 websocket服务端,进程启动的时候启动tcp,把tcp设置为 websocket的一个属性上 socketArray,然后在 websocket接受消息的回调里获取 socketArray,循环取出tcp链接,发送消息
代码
count = 1; $websocket->onWorkerStart = function ($websocket) { // 启动第一个tcp进程 $tcp1 = new Worker('tcp://0.0.0.0:6000'); // 设置到socketArray属性上 $websocket->tcpArray[] = $tcp1; $tcp1->listen(); // 启动第二个tcp $tcp2 = new Worker('tcp://0.0.0.0:6001'); $websocket->tcpArray[] = $tcp2; $tcp2->listen(); }; // 接受websocket消息后转发给tcp $websocket->onMessage = function ($conn, $data) { global $websocket; foreach($websocket->tcpArray as $tcpItem) { foreach ($tcpItem->connections as $tcpConn) { $tcpConn->send($data); } } }; Worker::runAll();

【【2022/1/4】TCP和websocket通讯】【2022/1/4】TCP和websocket通讯
文章图片

    推荐阅读