我已经实现了以下websocket端点
@MessageMapping("/socket/{myId}/")
@SendTo("/queue/myqueue")
public MyObject getObject(@DestinationVariable String myId) throws Exception {
return new MyObject("MyId:" + myId);
}
现在我如何从我的一个service.java类向该端点发送消息? 还有前端客户端,一旦service.java类的方法向websocket端点发送一些消息,它将从websocket读取消息。我有点困惑,我怎么能这样做?
任何帮助将不胜感激
答案 0 :(得分:1)
当使用原始websocket(没有STOMP)时,发送的消息缺少信息以使Spring将其路由到特定的消息处理程序方法(我们没有任何消息传递协议),所以不是注释你的控制器,而是'我必须通过扩展 TextWebSocketHandler 来实现WebSocketHandler public void handleTextMessage(WebSocketSession session,TextMessage message){ }
答案 1 :(得分:0)
你应该看看SimpMessagingTemplate。 例如,如果要从服务类发送特定用户的消息:
@Autowired
private SimpMessagingTemplate messagingTemplate;
public void sendMessage(User user, String message) {
Objects.requireNonNull(user);
Objects.requireNonNull(message);
messagingTemplate.convertAndSendToUser(user.getUsername(), "/queue/myqueue", message);
}