workerman如何定制协议
gateway硬件通信定制协议
最近在做TCP的硬件通信,发现一个通讯协议的问题, 网络tcpip通信特性接收会有问题的,会接收不完整的包,所以我们需要根据硬件设备发送的16进制进行处理
实现步骤
- 协议文件放到项目的Protocols文件夹,例如文件Chat/Protocols/JsonNL.php
- 实现JsonNL类,以namespace Protocols;为命名空间,必须实现三个静态
方法分别为 input、encode、decode - workerman会自动调用这三个静态方法,用来实现分包、解包、打包。具体流程参考下面执行流程说明。
- JsonNL协议实现完毕,可以在 Chat项目中使用,使用方法例如下面
文件:Chat\start_gateway.php - 在input进行解析 不符合的将return掉,经过解析处理之后,接收的包无断开