我有一个使用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)的新连接?可以配置吗?
答案 0 :(得分:2)
是的,每个websocket客户端都获得自己与代理的TCP连接。该文档有connections to the broker部分(强调我的):
STOMP经纪人中继维护单个&#34;系统&#34;与代理的TCP连接。此连接仅用于源自服务器端应用程序的消息,而不用于接收消息。 [...]
STOMP代理中继还为每个连接的WebSocket客户端创建单独的TCP连接。 [...]
如果可以配置或不配置我不知道,我不熟悉Spring的这一部分,但我认为它应该是;春天是开放的延伸。我的建议是在spring-websocket-portfolio项目上发布一个问题并询问具体细节。
编辑: OP在spring-websocket-portfolio项目上打开了以下issue。