我想编写一个使用与 Socket.IO 相同的有线格式的 C++ 服务器。我找到了
gevent-socketio
线路的数据包编解码器,但我找不到相应的客户端编解码器。
数据包的编码如下:
5:1+::{"name": "tobi"}
socket.io-protocol
#Packet似乎没有指定有线格式,并且标识符似乎与gevent-socketio
使用的标识符不匹配。
有明确的有线格式吗?是否可以使用固定/已知的客户端库编写一个与 Socket.IO 兼容的服务器,也许适用于某些固定版本的协议?
gevent-socketio 使用的数据包格式由数据包类型标识符(例如 5)、数据包 id(例如 1)和数据包数据(例如 {"name": "tobi"})组成。数据包类型标识符指定正在发送的数据包类型(例如事件、确认等),数据包 ID 用于消息确认和识别特定数据包。
你的答案
可以用 C++ 编写一个兼容 Socket.IO 的服务器,但您需要自己实现 Socket.IO 协议和线路格式。您还需要确保您的服务器与您正在使用的客户端库兼容。通常建议使用与您在服务器端使用的 Socket.IO 协议版本兼容的 Socket.IO 客户端库。