【发布时间】:2020-09-23 05:51:15
【问题描述】:
无法通过浏览器客户端与我的 websocket 服务器建立连接。
配置:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic/", "/queue/");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/greeting");
}
}
和控制器:
@MessageMapping("/message")
@SendToUser("/queue/reply")
public String processMessageFromClient(@Payload String message, Principal principal) throws Exception {
String name = new Gson().fromJson(message, Map.class).get("name").toString();
System.out.println(name);
//messagingTemplate.convertAndSendToUser(principal.getName(), "/queue/reply", name);
return name;
}
我启动服务器,然后在浏览器中打开 index.html 然后连接到ws://localhost:8080/greeting
然后发送消息到/app/message
但实际上什么也没发生。浏览器检查器显示 404。我做错了什么?
【问题讨论】:
-
使用@MessageMapping("/queue/reply") 代替@SendToUser("/queue/reply") 如上面的答案。
标签: java spring-websocket