版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011159582/article/details/81278997
Spring STOMP 使用简易教程。
SpringMVC 可以使用STOMP,下面直接上源码
websoket-client 下载地址:https://github.com/JSteunou/webstomp-client
sockjs 下载地址:https://github.com/sockjs/sockjs-client
依赖的库
- Jackson Databind
- Jackson Core
- Jackson Annotations
下载地址:http://www.mvnrepository.com/search?q=jackson
在springmvc的配置文件中加入以下xml配置文件
<!-- 配置STOMP -->
<!-- “/socket”是客户端发送消息的前缀 -->
<websocket:message-broker application-destination-prefix="/socket">
<!-- 指定的链接端点,客户端基于此链接和服务器通信 -->
<websocket:stomp-endpoint path="/app2">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<!-- 设置消息代理 -->
<websocket:simple-broker prefix="/topic, /queue"/>
</websocket:message-broker>
开发控制器
@Controller
public void MyWebController {
// 这个注解会直接将返回值传送给订阅了该方法的客户端
@SubscribeMapping("/my")
public String my(){
return "hello";
}
// 这个注解表示直接将返回值发送给消息代理,由消息代理处理,再转发给客户
// 端,注意:该注解默认省略了“/socket”前缀。转发时,将该路径替换成
// “/topic/my2”
@MethodMapping("/my2")
public String my2() {
return "my2";
}
}
JS 测试文件。
<!-- 引入JS文件 -->
<script src="webstomp.js"/>
<script src="sockjs.js"/>
<script>
// 链接到webapp/app2设置的
var socket = new SockJS("/webapp/app2");
var stompClient = webstomp.over(socket);
stompClient.connect({}, function (frame){
alert("链接");
stompClient.send("/socket/test2","data", {});
stompClient.subscribe("/socket/test2", function(message){
alert("订阅成功");
alert(message);
}, {});
});
</script>