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