有几种方式可以做到

1、最简单的方式,开一个worker进程即监听tcp,又监听websocket,这样在一个进程里方便互相操作连接传递数据

use Workerman\Worker;

// 监听tcp端口,硬件连这个端口

$iot_worker = new Worker('tcp://0.0.0.0:1234');

// 两个协议互通这种方式只能单进程

$iot_worker->count = 1;

// 进程启动时增加一个5678端口的websocket协议的监听,网页用ws连5678端口

$iot_worker->onWorkerStart = function(){

// 声明为全局变量,方便其它地方获取到这个容器对象

global $ws_worker;

// 监听5678端口,协议websocket

$ws_worker = new Worker('websocket://0.0.0.0:5678');

// 网页ws发来数据的时候的处理,可根据需要做处理,这里省略

$ws_worker->onMessage = function($ws_connection, $data){...};

$ws_worker->listen();

};

// 硬件发来消息的回调

$iot_worker->onMessage = function($connection, $data){

// 得到$ws_worker容器

global $ws_worker;

// 遍历容器里的连接给所有网页推送硬件发来的数据

foreach($ws_worker->connections as $ws_connection) {

$ws_connection->send($data);

}

};

// 启动workerman

Worker::runAll();

2、开A B两组worker进程,A组进程监听tcp,B组进程监听websocket,利用channel通讯,可以参考workerman手册

http://doc.workerman.net/comp...

http://doc.workerman.net/comp...

好处是可以分布式部署,可以多进程多服务器集群

3、用gatewayWorker,开一组tcp端口的gateway进程+一组websocket的进程,参考手册

http://doc2.workerman.net/mul...

好处是同样可以分部署部署,可以多进程多服务器集群,并且gatewayWorker提供了很多长连接直接可以用的接口,非常方便

连接服务器框架协议,想要实现:设备通过tcp连接服务器,框架用的是worker或者gateway...相关推荐

  1. 国标流媒体服务器GB28181协议和海康设备的交互过程记录

    国标GB28181协议从2016年更新后,变得比之前更火了,到今年已经4年了,国标视频流媒体服务器基础的功能都已经发展起来,而更深层次的功能还需要进一步的研发. 在日常运用中,海康的摄像头运用较为广泛 ...

  2. 客户端请求服务器的协议,电骡协议规范-第二章-客户端和服务器TCP通讯

    每个客户端用 TCP 连接到具体的服务器.服务器给客户端分配一个 ID ,这个 ID 用来标示其后与服务器的会话中该客户端(高 ID 客户端总是按照它的 IP 地址来分配).电骡 GUI 客户端为了运 ...

  3. B站服务器数据协议,阴阳师手游数据互通 B站服务器合服公告一览

    阴阳师手游数据互通 B站服务器合服公告一览,阴阳师手游B站服务器合服公告内容带给大家,包括了亲密无间.情深谊长.情意相投.两心无间这四个服务器进行数据互通,下面是补偿奖励和注意事项. 为提升部分服务器 ...

  4. 【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇

    1. 查看系统网络配置和当前TCP状态         在定位并处理应用程序出现的网络问题时,了解系统默认网络配置是非常必要的.以x86_64平台Linux kernelversion 2.6.9的机 ...

  5. TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇...

    最近遇到一个线上报警:服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接,在解决过程中,通过查阅经典教材和技术文章,加深了对TCP网络问题的理解.作为笔记,记录于此.       ...

  6. 股票服务器通讯协议,通俗讲解股票类app - TCP网络通信层设计

    场景 要做的产品 --- 炒股app 数据量大:5000多支股票,每支股票有分时,分笔数据,画一条k线,可能要500条分时数据,甚至更多. 实时性:股价每分每秒都在变化,一分钟产生很多条数据,用户要看 ...

  7. 服务器http协议拨测状态告警,使用 SCF 无服务器云函数定时拨测站点并邮件告警...

    利用无服务器架构中提供的定时触发能力,在运维监控场景有很多种用处,例如定时备份.定时拨测.定时统计等.在互联网业务监控运维的场景下,我们通常可以利用定时拨测,检测系统或服务的健康状态,并在系统异常的情 ...

  8. linux中ftp保持连接,linux – FTP’ing大文件时如何防止TCP连接超时?

    我无法将大型文件从Internet(FTP)检索到我的 Linux VM.一段时间后它会超时. 实际错误是"无法读取控制连接的回复 – 超时". 几分钟后,在传输了大量文件后,会发 ...

  9. 网络七层协议 五层模型 TCP连接 HTTP连接 socket套接字

    socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程 ...

最新文章

  1. python学习之第四课时--运算符
  2. 深度学习工具那么多,究竟哪款最适合你?| 线下沙龙 × 报名
  3. 从零写一个编译器(八):语义分析之构造符号表
  4. Python中map()函数用法
  5. 哈希表,哈希算法(C语言)
  6. FastStoneCapture屏幕截图软件
  7. linux 如何解压.exe,linux下解压火狐浏览器压缩包 ./filefox 运行可执行程序报错问题...
  8. 记ByteCTF中的Node题
  9. (98)Verilog HDL:流水灯设计
  10. 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从?
  11. 编程之美:寻找发帖水王 扩展
  12. 机器人学导论 一、空间变换(1)位姿,变换
  13. AUTOCAD——超级填充命令3
  14. python MySQLdb 一个连接connection多个cursor
  15. 华为云服务器协议,云服务器协议
  16. 离婚时,住房公积金分割吗?
  17. HITNet: Hierarchical Iterative Tile Refinement Network for Real-time Stereo Matching--Google
  18. IT运维审计:新手入门之服务器运维操作要点
  19. 两个整数之间的所有素数,素数个数,素数和
  20. 常见ADSL管理入口和密码

热门文章

  1. SAP License:当变态的与病态的需求来临,你是否说不?
  2. 那些机器学习中无法衍生的强规则变量有吗?
  3. 【BZOJ】2289: 【POJ Challenge】圆,圆,圆
  4. 软件工程(2018)第四次团队作业
  5. java监听器演示样例
  6. 金币(NOIP2015 普及组第一题)
  7. Linux LVM过程问题
  8. SpringBoot配置swagger2(亲测有效,如果没有配置成功,欢迎在下方留言)
  9. ueditor 后端配置项没有正常加载,上传插件不能正常使用 UTF8 PHP
  10. python遍历数据