2013-08-31 305 views
4

让我们考虑一下使用WebSockets的应用程序,它可以分成几个独立的模块。一个最简单的例子就是聊天应用程序,其中客户端应用程序可以一次加入/连接到多个聊天室(每个聊天室彼此独立)。什么是组织连接,同时开发这样的应用程序在客户端的每个聊天室WebSocket应用程序体系结构

  1. 打开新的WebSocket连接的首选形式给出。这样你就可以在服务器端有多个javax.websocket.server.ServerEndpoint实例,每个实例都有不同的url。因此,服务器和客户端应用程序将会稍微复杂一点,并且可以分为功能性(可重用)块。缺点是客户必须一次保留多个打开的连接。在我的情况下,我们一次只能谈十个最大值。

  2. 打开一个websocket连接并将消息复用到下面的聊天室,即消息中具有聊天室id的字段。实施起来并不是什么大事,会让应用程序变得更复杂一些,但它值得吗?

什么是首选方法?

回答

2

这并不容易回答,因为它取决于您的具体设置。然而,这是我的想法:

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