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