Swoole是一个为PHP用C和C++编写的基于事件的高性能异步&协程并行网络通信引擎。设计思路类似nginx(Reactor)+ php-fpm(Worker)。可以创建TCP,Websocket长链接服务,轻松承载上万长连接请求。
源码:
https://github.com/swoole/swoole-src
官网:
架构设计:
物联网通信服务构建思路:
思路的swoole代码实现:
https://github.com/yanjingang/study/tree/master/php/swoole
测试效果:
0.启动tcp/websocket/http server
php swoole_server.php
1.模拟硬件设备tcp长连接通信
telnet 127.0.0.1 8879
{“action”:”test”,”hid”:1,”pid”:”bd”,”data”:{}} //此命令在通讯的同时会记录hid与fd的关系
quit
2.模拟业务端发送http短连接指令,由server转发指令给对应硬件设备
curl “http://127.0.0.1:8878?hid=1&command=abc” //这里指定向特定hid的fd发送command,执行时tcp连接设备会收到消息
tcp连接收到了转发的xyz消息
3.ws页面渲染设备实时状态
yan 2019.9.20