dva-subscriptions 怎样订阅服务器的 websocket 连接?

dva - Subscription 是一种从 源 获取数据的方法,它来自于 elm。

Subscription 语义是订阅,用于订阅一个数据源,然后根据条件 dispatch 需要的 action。数据源可以是当前的时间、服务器的 websocket 连接、keyboard 输入、geolocation 变化、history 路由变化等等。

那么请问各位大神服务器的 websocket 连接要怎样订阅?

阅读 6.1k
2 个回答

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))
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题