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
45 lines
1.2 KiB
5 years ago
|
//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;
|
||
|
},
|
||
|
}
|