2

我有一个使用 websocket 进行实时多人游戏的游戏服务器。这是一个 Spring 4 应用程序,我使用 RabbitMQ 作为我的代理。这是我的配置:

<websocket:message-broker application-destination-prefix="/app">
    <websocket:stomp-endpoint path="/portfolio">
        <websocket:sockjs/>
    </websocket:stomp-endpoint>
    <websocket:simple-broker prefix="/queue, /topic"/>
</websocket:message-broker>

从 4 个客户端的一个非常小的测试中,我看到 Rabbit 上打开了 4 个连接。

每个使用 websocket 连接到我的服务器的客户端最终是否会打开与代理 (RabbitMQ) 的新连接?这个可以配置吗?

4

1 回答 1

2

是的,每个 websocket 客户端都有自己的到代理的 TCP 连接。该文档有一个与经纪人连接的部分(重点是我的):

STOMP 代理中继维护到代理的单个“系统”TCP 连接。此连接仅用于来自服务器端应用程序的消息,而不用于接收消息。[...]

STOMP 代理中继还为每个连接的 WebSocket 客户端创建一个单独的 TCP 连接。[ ... ]

我不知道这是否可以配置,我对 Spring 的这一部分并不是很熟悉,但我认为应该是;Spring 可以扩展。我的建议是在spring-websocket-portfolio项目上发布一个问题并询问细节。

编辑: OP在 spring-websocket-portfolio 项目中打开了以下问题。

于 2014-07-18T20:03:33.793 回答