在vue项目中使用stompjs+websocket进行封装实现订阅与发布功能
主要是为了记录一下实现封装的功能与方法
1.在你的项目里面src目录下新建一个api目录,目录里面建立一个stomp.js
**注意:**
// unsubscribe 对于取消订阅需要改一下源stompjs 路径:systemmonitor\views\node_modules\stompjs\lib\stomp.js
/*
* Client.prototype.unsubscribe = function(id,destination) {
* delete this.subscriptions[id];
* return this._transmit("UNSUBSCRIBE", {
* id: id,
* destination:destination
* });
* };
*/
bus.js代表全局消息总线,需要替换成自己的路径,里面的内容为如下:
import Vue from 'vue'
var bus = new Vue()
export default bus
引用需要的资源 ,store不做过多解释,就是vuex仓库,需要存连接状态
import SockJS from 'sockjs-client';
import Stomp from 'stompjs';
import bus from '@/components/common/bus';
import store from '@/vuex/store';
let host = window.location.host; //主机
// websocket地址
let baseStompUrl = 'ws://' + host;
// 公共地址 这个地方在开发环境下做了代理 需要改成自己的连接地址
let baseURL = process.env.NODE_ENV === 'development' ? (baseStompUrl+'/websocketApi/Parameters') : (baseStompUrl+'/Parameters');
let socket = null;
let</