【发布时间】:2017-01-17 11:58:45
【问题描述】:
我想使用 websocket 从服务器向客户端发送一些东西.. 这是我的代码:
----服务器上的Websocket配置----
@Configuration
@EnableWebSocketMessageBroker
@Slf4j
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/myWebSocketEndPoint")
.withSockJS();
}
}
---- 控制器---
@Controller
@Component
@Slf4j
public class MenuItemController{
@SendTo("/topic/notification")
public String sendToMenuItems(MenuItemDto menuItem) {
return menuItem.getMenuItemName();
}
}
----- 客户----
var SockJS = require('sockjs-client');
var Stomp = require('stompjs');
let connectWebSocket = () => {
socket = new SockJS(context.backend + '/myWebSocketEndPoint');
stompClient = Stomp.over(socket);
stompClient.connect({},function (frame) {
console.log(frame);
stompClient.subscribe('/topic/notification', function(menuItem){
alert(menuItem);
});
});
}
connectWebSocket();
我使用 context.backend 因为我使用 webpack,所以 websocket 通过后端服务器连接。它适用于连接并且订阅似乎也有效,但是当我从服务器向客户端发送某些内容时,不会出现警报,并且在控制台中没有来自 websocket 的消息。我的问题是什么?我希望有人可以帮助我.. =D
【问题讨论】:
标签: spring websocket stomp sockjs subscribe