You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
1.2 KiB

//websocket工具类
var socketUtil = {
/***
* 2019-1-2 16:22 lzf
* 建立websocket长连接,并订阅主题
*
* @param {String} sockUrl websocket连接地址:域名 + 端口 + 上下文 + websocket配置名
* @param {String} subUrl 订阅的主题:/topic/hello、/queue/hello
* @param {Function} callback 订阅成功后的回调函数
*/
subscribe: function(sockUrl, subUrl, callback) {
//利用sockJS建立长连接
var socket = new SockJS(sockUrl);
//创建STOMP客户端
var stomp = new Stomp.over(socket);
//接收信息间隔
stomp.heartbeat.incoming = 60000;
//心跳发送时间间隔
stomp.heartbeat.outgoing = 60000;
/**
* 开始连接
* connect方法
* @param 请求头,定义连接STOMP服务器的参数
* @param 连接成功的回调函数
*
* 详情请参考 http://jmesnil.net/stomp-websocket/doc/
**/
stomp.connect({}, function(event) {
/***
* 订阅
* subscribe方法
* @param 订阅的主题 例如:/topic/hello、/queue/hello
* @param 订阅成功的回调函数
*/
stomp.subscribe(subUrl, function(data) {
//订阅成功,调用外部传递的回调函数
callback(data);
});
});
//返回STOMP客户端对象
return stomp;
},
}