ebc

ipu-stomp.js 1.8KB

    import SockJS from 'sockjs-client' import Stomp from 'stompjs' import {socketUrl} from '@/constants' import EventBus from './bus' var socket = null var peronStompClient = null var shipStompClient = null export default function initWebSocket(params) { personStomp(params) shipStomp(params) } function personStomp(params) { if (socketUrl.startsWith('http') || socketUrl.startsWith('https')) { socket = new SockJS(socketUrl)// 连接服务端 peronStompClient = Stomp.over(socket) } else { // SockJS支持ws前缀 peronStompClient = Stomp.client(socketUrl) } params.uuid = uuid() peronStompClient.connect(params, (frame) => { successCallback() }, () => { personStomp(params) }) } function shipStomp(params) { if (socketUrl.startsWith('http') || socketUrl.startsWith('https')) { socket = new SockJS(socketUrl)// 连接服务端 shipStompClient = Stomp.over(socket) } else { // SockJS支持ws前缀 shipStompClient = Stomp.client(socketUrl) } params.uuid = uuid() shipStompClient.connect(params, (frame) => { successShipCallback() }, () => { shipStomp(params) }) } function successShipCallback() { shipStompClient.subscribe('ship', msg => { EventBus.$emit('ship', msg.body) }) } function successCallback() { peronStompClient.subscribe('personnel', msg => { EventBus.$emit('person', msg.body) }) } function uuid() { var s = [] var hexDigits = '0123456789abcdef' for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1) } s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01 s[8] = s[13] = s[18] = s[23] = '-' var uuid = s.join('') return uuid }