我将websockets用于项目的交互部分,但我似乎无法在客户端接收来自服务器的消息。
我在主文件中的新线程上启动websocket:
public void run()
{
StandardWebSocketClient client = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(client);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
sessionHandler = new MyMessageHandlerClass();
((MyMessageHandlerClass) sessionHandler).setLocalID(localID);
stompClient.connect("url/endpoint", sessionHandler);
}
我的mymessagehandlerclass扩展了stompsessionhandleradapter,它有handleframemethod和subscribe方法:
@Override
public void handleFrame(StompHeaders headers, Object payload) {
System.out.println("handleFrame: ");
if (headers.getDestination().contains("thisEndPoint")) {
System.out.println("message");
//logic
}
//more logic
}
public void subscribe(String endpoint){
session.subscribe(endpoint, this);
System.out.println("log");
}
(我简化了一些代码)
我的问题是,虽然服务器接收消息,而服务器将客户机消息发送到正确的端点,但我的客户机似乎没有接收到消息。
据我所知,handleframe应该在每次收到信息时自动调用,我似乎找不到任何方法来“激活监听”或类似的东西
暂无答案!
目前还没有任何答案,快来回答吧!