我正在构建一个聊天服务器,该服务器使用自定义协议通过套接字与客户端进行通信。客户端将特定的字符串发送到服务器,并且服务器必须基于这些非标准消息采取适当的措施。我无法更改此协议,也无法访问基础客户端代码。
我的问题是,如果我不知道客户端如何处理套接字活动,是否可以使用node.js socket.io包为服务器套接字通信供电?我问的原因是,每次阅读socket.io文档时,每当我通过套接字推送任何内容时,“事件”都与每个动作相关联。
是否可以将与此“事件”捆绑在一起的来自服务器的非常精确的消息发送给客户端?我最好使用websockets包吗?
socket.io服务器可以与非socket.io客户端通信吗
否。socket.io服务器需要用于启动连接的webSocket协议和在其之上的socket.io格式。因此,socket.io服务器只能与socket.io客户端通信,反之亦然。
如果您的聊天客户端使用自定义协议,则您需要实现一个也使用该自定义协议的TCP服务器(无论使用哪种协议)。
如果可以修改客户端,则可以将其修改为使用socket.io客户端,然后可以通过socket.io发送聊天消息,然后socket.io服务器可以接收这些消息。
客户端将特定的字符串发送到服务器,并且服务器必须基于这些非标准消息采取适当的措施。我无法更改此协议,也无法访问基础客户端代码。
然后,您必须实现一个服务器,该服务器根据客户端的任何基础协议使用您的自定义客户端协议。别无选择。
我问的原因是,每次阅读socket.io文档时,每当我通过套接字推送任何内容时,“事件”都与每个动作相关联。
这就是socket.io层的工作方式。它发送一条消息和(可选)数据。只需声明一个通用data
消息,然后data
在另一端侦听该消息,就可以始终使用它来发送数据。但是,这假定您可以同时修改客户端和服务器以使其工作。如果您不能修改客户端以使用socket.io协议,则不能使用socket.io。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句