我有websocket的问题我正在使用spring boot和stompjs我正在使用以下代码订阅套接字:
var socketLien = /*[[@{'/socket'}]]*/;
var socket = new SockJS(socketLien);
var stompClient = Stomp.over(socket);
stompClient.reconnect_delay = 5000;
stompClient.connect({}, function (frame) {
var lien = /*[[${"/topic/greetings"}]]*/;
var agenceId =/*[[${session.agencePrincipale.id}]]*/
var cessionLien = /*[[@{'/Agence/Cession/Creation'}]]*/;
stompClient.subscribe(lien+"/"+agenceId, function (greeting) {
notif(jQuery.parseJSON(greeting.body),cessionLien);
},{"agenceId" : agenceId});
/*]]>*/
stompClient.subscribe("/user"+lien+"/"+agenceId, function (greeting) {
console.log(greeting.body);
notif(jQuery.parseJSON(greeting.body),cessionLien);
});
},function(frame) {
console.log('close');
stompClient.disconnect();
});
刷新后,会创建一个新连接,但旧连接不会关闭
我在服务器中找到了一个日志,显示所有已连接的套接字
[MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 11 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(11)-CONNECTED(11)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 132], outboundChannelpool size = 0, active threads = 0, queued tasks = 0, completed tasks = 22], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 9, completed tasks = 29198]
这是我在 Spring 季靴子的conf:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/socket")
.setAllowedOrigins("*")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app")
.enableSimpleBroker("/topic");
}
}
你能帮助我吗 ?