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
//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; |
|
}, |
|
} |