Swoole—高性能的异步并发TCP、UDP、WebSocket 服务PHP扩展。

Swoole是一个为PHP用C和C++编写的基于事件的高性能异步&协程并行网络通信引擎。设计思路类似nginx(Reactor)+  php-fpm(Worker)。可以创建TCP,Websocket长链接服务,轻松承载上万长连接请求。

源码:

https://github.com/swoole/swoole-src

官网:

https://www.swoole.com/

架构设计:

物联网通信服务构建思路:

思路的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页面渲染设备实时状态

WebGL通过WebSocket连接127.0.0.1:8878,注册要接收状态的pid,之后持续自动接收server push的指定pid场地设备的动态信息,用于GL渲染或其他实时监控展示。

server端ws连接注册fd日志:

yan 2019.9.20

发表评论

电子邮件地址不会被公开。