import SockClient from 'sockjs-client'
const Stomp = require('@stomp/stompjs')
createStompClient() {
const that = this
const ws = new SockClient(`/socket/api/socket-mq?access_token=${getToken()}`)
this.stompClient = Stomp.Stomp.over(ws)
this.stompClient.connect(this.configData.mqUserName, this.configData.mqPassword, () => {
console.log('【MQ】:on_connect')
that.clientOnConnectHandle()
},(err) => {
console.log('【MQ】:on_error', err)
}, (val) => {
console.log('【MQ】:on_close', val)
that.clientOnDisconnectHandle()
})
},
clientOnConnectHandle() {
this.subscription = this.stompClient.subscribe(`/exchange/ExEventAnalysis/EventAgentInfo.${this.agentConfig.agentId.slice(0,6)}.${this.agentConfig.agentId}`,(msg)=>{
let msgTool = JSON.parse(msg.body)
if (msgTool.messageID === 'EventAgentInfo') {
this.$store.commit('commitData', {
name: 'staticObj',
data: msgTool
})
}
})
},
clientOnDisconnectHandle() {
const that = this
console.log('【MQ】:连接断开!');
that.closeStompClient();
this.reload = window.setTimeout(() => {
that.createStompClient();
window.clearTimeout(that.reload)
}, 2000);
},
unsubscribe() {
if(this.subscription) {
this.subscription.unsubscribe();
this.subscription = null;
}
},
closeStompClient() {
if(this.stompClient) {
this.unsubscribe()
this.stompClient = null;
}
},
clientOnDebugHandle(str) {
console.log(`【MQ】:${str}`)
},
clientOnWebSocketErrorHandle(err) {
console.log(`【MQ - WebSocket异常】:${err}`)
},
clientOnStompErrorHandle(receipt) {
console.log(`【MQ - Stomp异常】:${receipt}`)
},
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)