
前端通过 sockJs 和 stomp client 和 Spring WebSocket 建立链接。。
按照 spring io demo 是 ok 的,但是其方式是将@MessageMapping 和 @SendTo 这两个注解同时绑定在 Controller 的方法上;
个人理解为 @MessageMapping 是前端的 endpoint,作为后端的接受, 而@SendTo 作为后端向前端订阅者推送。
由于实际需求, 其实只需要后端向前端推送通知即可。尝试代码如下:
@Controller public class MessageEndPoint { @MessageMapping("/chat") public void receive(String message) throws Exception { $save(message); } @SendTo("/topic/notify") public String send(String msg) { return "time to refresh"; } } 其实我想把接受和推送单独分离开, 但是不好使。。。
1 stephCurry OP 做了些尝试,@SendTo 不可单独使用, 而 @MessageMapping 可以。 如单独仅推送, 可用 SimpMessagingTemplate#convertAndSend |
2 akiakiseofficial 2019-10-04 23:25:19 +08:00 via Android SendTo 本来就是 convertAndSend 的另一种用法吧,从功能上理解。 |