我正在使用Spring websocket实现.要向客户端发送消息,有两种方法:
1)使用@SendToUser注释
2)使用convertAndSendToUser方法SimpMessagingTemplate
@SendToUser获取一个布尔参数broadcast,如果设置为false,则将该消息发布到当前会话.有没有办法让我有这种行为SimpMessagingTemplate.
我正在构建一个使用Stomp通过websockets代理消息的应用程序.我试图从服务器向客户端发送消息,而无需来自应用程序的任何位置的请求.我在网上找到两个单独的选择,用于从应用程序的任何位置发送消息
第一个是在Websocket文档中找到的.第20.4.5节:
@Controller
public class GreetingController {
private SimpMessagingTemplate template;
@Autowired
public GreetingController(SimpMessagingTemplate template) {
this.template = template;
}
@RequestMapping(value="/greetings", method=POST)
public void greet(String greeting) {
String text = "[" + getTimestamp() + "]:" + greeting;
this.template.convertAndSend("/topic/greetings", text);
}
}
Run Code Online (Sandbox Code Playgroud)
@Controller
public class GreetingController {
@Autowired
private SimpMessagingTemplate template;
@RequestMapping(value="/greeting", method=POST)
public void greet(String greeting) {
String text = "[" + getTimeStamp() + "]:" + greeting;
this.template.convertAndSend("/topic/greeting", text);
}
}
Run Code Online (Sandbox Code Playgroud)
两者非常相似.第一个覆盖默认构造函数,不会自动装配模板初始化.第二个不会创建新的构造函数,但会自动装配模板初始化.我的第一个问题是这两个行为是否相同?
更紧迫的是我无法从任何地方调用"问候"方法.我尝试过几种不同的方式. …