【问题标题】:WebSocket app architectureWebSocket 应用架构
【发布时间】:2013-08-31 09:42:42
【问题描述】:

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

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

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

首选的方法是什么?

【问题讨论】:

    标签: java websocket


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 2018-09-14
      • 2015-05-26
      • 1970-01-01
      相关资源
      最近更新 更多