最近在做一个web terminal的需求,自己也写了 demo ,使用 websocket + stomp 进行前后端通讯,其中遇到一个问题,就是我的前后端连接正常及 ssh 连接也正常了,但是我需要把 ssh 连接返回的信息,再返回给客户端。了解到使用 SimpMessagingTemplate ,但是在使用过程中却遇到一个循环依赖的问题,所以这里记录一下。
SimpMessagingTemplate的作用
1、SimpMessagingTemplate可以在应用的任意地方发送消息。
Spring的SimpMessagingTemplate能够在应用的任何地方发送消息,甚至不必以首先接收一条消息作为前提。 使用SimpMessagingTemplate的最简单方式是将它(或者其接口SimpMessageSendingOperations)自动装配到所需的对象中。
2、SimpMessagingTemplate可以为指定的用户发送消息。
SimpMessagingTemplate还提供了convertAndSendToUser()方法。convertAndSendToUser()方法能够让我们给特定用户发送消息。
simpMessageSendingOperations.convertAndSendToUser("1", "/message", "测试convertAndSendToUser");
stomp.subscribe('/users/1/message', function(message){ });
客户端接收一对一消息的主题是"/users/“+usersId+”/message",这里的用户Id可以是一个普通字符串,只要每个客户端都使用