当我尝试在Spring websocket上从客户端向服务器发送消息时,我遇到了问题.我在服务器上配置Websocket并在控制器上创建@Message.我通过javascript从客户端发送数据.它有时会工作,但有时会失败并在服务器上抛出消息:MissingSessionUserException:消息中没有"user"标题
这是我的WebsocketConfig:
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/connectsocket").withSockJS();
}
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的MessageController:
@RestController
public class MessageController {
@Autowired
private SimpMessagingTemplate template;
@MessageMapping("/websocket/message")
public synchronized void message(Message<Object> messageObj,
WebMessage message, Principal principal) throws Exception {
if (principal != null) {
String name = principal.getName();
template.convertAndSendToUser(name, "/topic/dynamic", new MessagePojo("stage", "value", "message"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Javascript-backbonejs代码:
app.Models.WebsocketModel = Backbone.Model.extend({
fetchData : function() {
console.log("WebsocketModel: fetchData");
var …Run Code Online (Sandbox Code Playgroud)