5

让我们考虑使用 WebSockets 的应用程序,它可以分为几个独立的模块。一个最简单的示例是聊天应用程序,其中客户端应用程序可以一次加入/连接到多个聊天室(每个聊天室彼此独立)。在开发此类应用程序时组织连接​​的首选方法是什么

  1. 在客户端为每个聊天室打开新的 websocket 连接。这样,您将javax.websocket.server.ServerEndpoint在服务器端拥有多个实例,每个实例都有不同的 url。因此,服务器和客户端应用程序都将不那么复杂,并且可以分成功能(可重用)块。缺点是客户端必须同时保持多个打开的连接。就我而言,我们一次最多谈论十个。

  2. 打开一个 websocket 连接并将消息多路复用到下面的聊天室,即通过消息中带有聊天室 id 的字段。实现起来没什么大不了的,会使应用程序更复杂一点,但值得吗?

首选方法是什么?

4

1 回答 1

2

这通常不容易回答,因为它取决于您的具体设置。但是,以下是我对此的看法:

我认为选项 2 是更好的方法,因为开放连接对于许多网络服务器来说确实是一种有限的资源。请记住,websocket 连接与常规的 http 请求不同,并且会长时间保持打开状态。我认为多路复用协议的额外复杂性确实不是问题。我知道的所有 websocket 通信协议的实现都使用后一种方法,尽管我必须承认我并不知道很多例子。

于 2013-08-31T11:01:36.477 回答