2017-10-20 117 views
0

我建立它使用定制协议,用以通过插座与客户沟通聊天服务器通信。客户端向服务器发送特定字符串,并且服务器必须根据这些非标准消息采取适当的操作。我无法更改此协议,也无法访问底层客户端代码。能否在socket.io服务器与客户端non-socket.io

我的问题是,我可以使用Node.js的socket.io包为服务器供电socket通讯,如果我不知道客户是如何处理它的套接字活动?我在问,因为,通过socket.io文档阅读,每次我通过套接字推动任何事件时,每个动作都与一个“事件”相关联。

是否可以从服务器中捆绑该“事件”发出一个非常确切的消息给客户端?我最好使用websockets包吗?

+0

我知道这不是您询问的特定技术,但您可能会考虑使用WebRTC解决方案 - 您甚至可以找到node.js聊天服务器教程。 – theGleep

回答

1

能一个socket.io服务器与客户端non-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。

+0

谢谢,非常果断的回答。你能否指出我可以用我自己的协议来实现一个纯粹的基于TCP的服务器的方向?从头看,我在想'网' –