有没有不基于 WebSockets 的 Socket.IO 替代方案?
Is there a Socket.IO alternative that is not based on WebSockets?
我构建了一个实时应用程序,感谢 Socket.IO,它可以为许多不同的客户端类型(C#、Java、浏览器...)提供服务!我知道有很多 Socket.IO 替代方案,但据我了解,一切都或多或少基于 WebSockets。 (我知道如果 WebSockets 不工作,Socket.IO 有回退,但可以说它们更少 "inferior workarounds"...)
我的问题是:是否有任何不基于 WebSockets 但仍然可以为所有这些不同的客户端提供服务的类似实时引擎可用?
The WebSocket protocol在服务器和客户端之间建立双向通信通道;他们彼此说话更自然。服务器可以只向客户端发送一些东西,反之亦然。在 http 中,它只是一个方向,有一个请求和一个响应,一切都需要从客户端的请求开始。
根据我的经验,多人游戏或聊天等实时 web 应用程序变得更容易开发,并且显然比使用 http 产生的开销更少 - 但您仍然可以或多或少地使用 http 来做同样的事情(请参阅例如 long polling)。
看看 gmail 或其他现有的网络应用程序,它们都使用 http(Socket.io 作为后备)并且它工作得很好。
你没有说你的端点是什么。如果其中一个端点是具有浏览器和 Java 脚本的纯粹内置功能的浏览器,那么 webSocket 是您从浏览器到其他目的地获得持续连接的唯一方法。
如果不支持 webSocket(在较旧的浏览器中),那么其他 socket.io 回退(例如 xhr-long-polling)是下一个最佳选择。由于浏览器的通信能力有限,如果您不能使用 webSocket,那么 ajax 调用是您唯一的其他普遍支持的选项,不需要在每个浏览器上安装插件(例如 Flash 或 Java或类似的东西)。 socket.io 已经支持浏览器中可用的次佳选项 - 如果您谈论的是没有自定义插件的标准浏览器,您就不能做得更好了。
如果您的端点不一定包含浏览器并且您可以使用任何您想要的语言或库,那么您可以使用普通 TCP 套接字,然后通过 TCP 套接字使用您想要的任何协议。
我构建了一个实时应用程序,感谢 Socket.IO,它可以为许多不同的客户端类型(C#、Java、浏览器...)提供服务!我知道有很多 Socket.IO 替代方案,但据我了解,一切都或多或少基于 WebSockets。 (我知道如果 WebSockets 不工作,Socket.IO 有回退,但可以说它们更少 "inferior workarounds"...)
我的问题是:是否有任何不基于 WebSockets 但仍然可以为所有这些不同的客户端提供服务的类似实时引擎可用?
The WebSocket protocol在服务器和客户端之间建立双向通信通道;他们彼此说话更自然。服务器可以只向客户端发送一些东西,反之亦然。在 http 中,它只是一个方向,有一个请求和一个响应,一切都需要从客户端的请求开始。
根据我的经验,多人游戏或聊天等实时 web 应用程序变得更容易开发,并且显然比使用 http 产生的开销更少 - 但您仍然可以或多或少地使用 http 来做同样的事情(请参阅例如 long polling)。 看看 gmail 或其他现有的网络应用程序,它们都使用 http(Socket.io 作为后备)并且它工作得很好。
你没有说你的端点是什么。如果其中一个端点是具有浏览器和 Java 脚本的纯粹内置功能的浏览器,那么 webSocket 是您从浏览器到其他目的地获得持续连接的唯一方法。
如果不支持 webSocket(在较旧的浏览器中),那么其他 socket.io 回退(例如 xhr-long-polling)是下一个最佳选择。由于浏览器的通信能力有限,如果您不能使用 webSocket,那么 ajax 调用是您唯一的其他普遍支持的选项,不需要在每个浏览器上安装插件(例如 Flash 或 Java或类似的东西)。 socket.io 已经支持浏览器中可用的次佳选项 - 如果您谈论的是没有自定义插件的标准浏览器,您就不能做得更好了。
如果您的端点不一定包含浏览器并且您可以使用任何您想要的语言或库,那么您可以使用普通 TCP 套接字,然后通过 TCP 套接字使用您想要的任何协议。