我在Spring WebSocket上遇到了一个问题,我可以通过ws://localhost:port/ws成功连接到WebSocket,但我不能通过STOMP命令发送或接收任何东西(我的意思是我可以发送,但我不知道是否发生了什么)
WebSocketConfiguration:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws");
registry.addEndpoint("/ws").withSockJS();
}
}
字符串
主计长:
@Controller
public class SignalingController {
@MessageMapping("/offer/sendOffer")
@SendTo("/topic/offer")
public String sendOffer(String offer){
// Process the offer and send a response
return "Received offer: " + offer;
}
@MessageMapping("/receive/receiveOffer")
@SendTo("/topic/answer")
public String sendAnswer(String answer) {
// Process the answer and send a response
return "Received answer: " + answer;
}
}
型
我尝试使用Postman测试端点,并发送以下请求:
SEND
destination:/app/offer/sendOffer
content-type:text/plain
Test message!
^@
型
我看到它正在发送这个请求,但没有任何东西回来(ACK或其他东西):Postman Websocket sending
1条答案
按热度按时间klh5stk11#
TL;DR:Sping Boot 代码很好,但是测试它的方法是错误的。
好吧,经过很多次的尝试,我终于找到了一个方法。
首先,我试图从Android应用程序连接和发送请求,但在此之前,我试图用Postman WebSocket测试端点(我放弃了)。
其次,我尝试在Android上使用OkHTTP 3进行测试,但没有工作(无论出于什么原因,STOMP消息没有被Spring后端解析)。
最后,我遇到了运行完美的
org.java_websocket
,我刚刚从WebSocketClient.class
发送STOMP请求作为文本,Spring终于开始将消息路由到控制器。