使用spring WebSocket还有一种方法进行推送,就是使用STOMP协议进行推送,其核心思
想就是订阅(subscribe)。
1. 配置Spring的Configuration文件。
注一:Application-destination-prefix:用例对URL进行区分,这里的”/app”表明,如果想要
使用这个message broker(消息代理),就需要在URL中添加”/app”。
注二:Stomp-endpoint:这里是一个stomp的一个借助WebSocket进行握手的配置。这个
握手的interceptor在这里什么都不需要做,我们不再需要session了。
注三:simple-broker:非常重要,在这里我们只使用一个simple broker,但是将来可以使
用一个更为复杂的broker(Apache ActiveMQ等)。可参考下图理解simple broker的作用。
2. 实现一个HandshakeInterceptor(简单到没有)
3. 我们可以写一个Controller用于管理这些“/app”请求。
这里的@MessageMapping(“/greeting”),将用来处理“/app/greeting”的STOMP的SEND请
求。
这里的@SendTo(“/topic/show”),将所有订阅了(subscribe)“/topic/show”)的用户进行消息
的推送,推送的内容就是函数的返回值”[hello]”。
这里的@SubscribeMapping(“/init/{id}”),一个新的订阅,这个订阅不是simple broker,但
是也可以返回一个JSON的字符串。
4. 开始编写web页面(使用jQuery)。
建立STOMP连接,之前要进行websocket连接(握手)。
订阅”/topic/show”
请求向所有订阅过”/topic/show”的client推送消息