鍍金池/ 問答/HTML/ dva-subscriptions 怎樣訂閱服務(wù)器的 websocket 連接?

dva-subscriptions 怎樣訂閱服務(wù)器的 websocket 連接?

dva - Subscription 是一種從 源 獲取數(shù)據(jù)的方法,它來自于 elm。

Subscription 語義是訂閱,用于訂閱一個(gè)數(shù)據(jù)源,然后根據(jù)條件 dispatch 需要的 action。數(shù)據(jù)源可以是當(dāng)前的時(shí)間、服務(wù)器的 websocket 連接、keyboard 輸入、geolocation 變化、history 路由變化等等。

那么請(qǐng)問各位大神服務(wù)器的 websocket 連接要怎樣訂閱?

回答
編輯回答
兔囡囡

openSocket

subscriptions: {
  openSocket ({ dispatch }) {
    return service.wsConnect((data) => {
      dispatch({ type, payload: data })
    })
  },
}

// service.js
let ws
export function wsConnect (action) {
  ws = new global.WebSocket(url)
  ws.onopen = () => {
    // do something
  }
  ws.onmessage = ({ data }) => {
    action(JSON.parse(data))
  }
}
2017年4月5日 02:41