Websocket通信vue vuexグローバルパッケージ
Websocket通信vuexグローバルパッケージ最近会社はwebsocketを使いますが、グローバルに使います.ナビゲーションに小さな赤い点をつけたいので、相対的に簡単です.私はsocket研究段階に属しています.
// import Cookies from 'js-cookie'
//
const wsuri = ‘ws:/xxxxxxxx’
const websocket = {
state: {
websock: null,
websockData: [],
system: [],
comment: []
},
mutations: {
STAFF_UPDATEWEBSOCKET(state, websock) {
state.websock = websock
},
STAFF_websocketonmessage(e) { //
const redata = JSON.parse(e.data)
// console.log('111')
console.log(redata)
},
STAFF_red(e) { //
// const redata = JSON.parse(e.data)
// console.log('111')
console.log(e)
// alert('55')
}
// websocketonmessage
// STAFF_SEND (state, text) {
// state.websock.send(text)
// }
},
actions: {
STAFF_WEBSOCKET({ commit }) {
// alert('55')
commit('STAFF_UPDATEWEBSOCKET', new WebSocket(wsuri))
// console.log('453453')
// const token = encodeURI('Bearer ' + store.state.token)
// console.log(websocket.state.websock, 'this.state.websock--')
// onopen , , onmessage 。
websocket.state.websock.onopen = function() {
var data = {}
data['auth'] = ''
data['type'] = ''
// data['uid'] = Cookies.get('uid') - 0
data['uid'] = 4
data['project'] = ''
console.log(JSON.stringify(data), '--------datga')
// this.websocketsend(JSON.stringify(data))
websocket.state.websock.send(JSON.stringify(data))
}
websocket.state.websock.onmessage = function(e) {
// alert('444')
const redata = JSON.parse(e.data)
websocket.state.websockData.push(redata)
if (redata.message.type === 'system') {
websocket.state.system.push(redata._id)
}
if (redata.message.type === 'comment') {
websocket.state.comment.push(redata._id)
}
}
// ,30s Heartbeat
// setInterval(function() {
// websocket.state.websock.send(JSON.stringify({
// 'heart': true
// }))
// }, 30000)
},
FUN_send({ commit }) {
// alert('55')
commit('STAFF_red')
// websocket.state.websock.send(JSON.stringify(data))
setTimeout(function() {
var data = {}
data['auth'] = ''
data['type'] = 'read_message'
data['project'] = ''
data['_id'] = websocket.state.comment.join(',') // id
// console.log(websocket.state.comment.join(','), '-commentcomment----')
websocket.state.comment = []
websocket.state.websock.send(JSON.stringify(data))
}, 100)
},
FUN_sendsystem({ commit }) {
// alert('666')
commit('STAFF_red')
// websocket.state.websock.send(JSON.stringify(data))
setTimeout(function() {
var data = {}
data['auth'] = ''
data['type'] = 'read_message'
data['project'] = ''
data['_id'] = websocket.state.system.join(',') // id
console.log(websocket.state.system.join(','), '-system----')
websocket.state.system = []
websocket.state.websock.send(JSON.stringify(data))
}, 100)
}
}
}
// const
// const
// websocket , token
// const
// websocket 。 mutations , , return, getters 。
// const getters = {
// STAFF_UPDATE(state) {
// return state.websock
// }
// }
// export default {
// state,
// mutations,
// actions,
// getters
// }
export default websocket