程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【2022/1/4】TCP和websocket通讯大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

TCP和websocket通讯

使用场景:通过网页控制硬件设备,或者硬件设备的信息显示到网页上

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

所用技术

  1. PHP环境
  2. workerman

实现原理

启动一个websocket服务端,进程启动的时候启动tcp,把tcp设置为websocket的一个属性上socketArray,然后在websocket接受消息的回调里获取socketArray,循环取出tcp链接,发送消息

代码

<?php
use WorkermanWorker;

require_once __DIR__ . '/vendor/autoload.php';

$websocket = new Worker('Websocket://0.0.0.0:8888');
$websocket->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通讯全部内容,希望文章能够帮你解决【2022/1/4】TCP和websocket通讯所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: