TCP和websocket通讯
使用场景:通过网页控制硬件设备,或者硬件设备的信息显示到网页上所用技术
- PHP环境
- 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/02/02】thinkphp源码无差别阅读(三十五)
- 【2022/01/31】thinkphp源码无差别阅读(三十四)
- 【2022/01/31】thinkphp源码无差别阅读(三十三)
- 【2022/01/29】thinkphp源码无差别阅读(三十一)
- 【2022/01/27】thinkphp源码无差别阅读(三十)
- 【2022/01/24】thinkphp源码无差别阅读(二十八)
- 【2022/01/23】thinkphp源码无差别阅读(二十七)
- 【2022/01/22】thinkphp源码无差别阅读(二十六)
- 【2022/1/16】thinkphp源码无差别阅读(二十一)
- 【2022/1/15】thinkphp源码无差别阅读(二十)