7

我正在开发一个将使用 Web 套接字的单页 Backbone 应用程序。该应用程序相当复杂,有 6 个或更多主要区域(屏幕)。

Web 套接字的语法似乎很简单,我现在想知道架构。

使用 Web 套接字时,采用第一种方法还是第二种方法最有效?

1:在应用程序的任何屏幕或区域上为所有实时服务器通信打开一个 websocket,然后在客户端过滤这些消息?

或者...

2:一次打开多个 websocket,其中每个 web socket 代表应用程序中的某些功能区域

(我看过这个页面,但它是关于服务器端的,我对客户端感兴趣:WebSocket 服务器的最佳实践是什么?

更新:服务器正在使用 Jetty(一种与 Tomcat 不同的 Java 技术)。

4

2 回答 2

3

我只会打开一个连接,更易于管理。为了便于调试,您可以使用区域名称命名所有事件。socket.io 也支持命名空间,请参阅http://socket.io/#how-to-use中的“将自己限制在命名空间”部分。

此外,如果您与 websocket 进行大量通信,您可以使用 Visibility API 将其关闭,例如:https ://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API

于 2012-11-09T00:13:06.190 回答
1

不是对您的问题的直接回答,但是,因为您说您在客户端上使用骨干网,并假设您在服务器上使用节点(如果没有,这可能是这样做的一个令人信服的论据),您可能会感兴趣在本文中详细讨论了客户端和(节点)服务器之间共享模型数据以同步状态。如果您不知道,Backbone 可以作为模块安装在 node.js 中。

正如您所描述的,由于您的应用程序相当复杂,因此您可能会受益于在客户端和服务器之间直接共享相同复杂模型的能力。

于 2012-11-09T00:23:01.447 回答