websocket 方法
在使用 websocket 方法之前需引入相应的文件。
import websocket from 'utils/webSoket';
initWebSocket
- 初始化WebSocket
- WebSocket的 url 为环境变量的 WEBSOCKET_URL 拼接accessToken
- 心跳重连时间为 45s
示例
   import webSocketManager from 'utils/webSoket';
   class ComponentA extends React.Component {
 
     componentDidMount() {
       webSocketManager.initWebSocket();
     }
 
   }
addListener
- 用于添加监听事件
- 在WebSocket收到来自服务器的消息时会触发相应监听事件
参数
[type](String):监听事件类型,类型应为WebSocket监听到的消息数据的 ${res.service}:${res.key}
[handler](Function):回调函数,回调函数的第一个参数是监听到的实际消息
示例
   import webSocketManager from 'utils/webSoket';
   class ComponentA extends React.Component {
 
     componentDidMount() {
       webSocketManager.initWebSocket();
       webSocketManager.addListener('hzero-message:hzero-web', messageData => {
      const { message } = messageData;
      const messageJson = isEmpty(message) ? undefined : JSON.parse(message);
      if (!isEmpty(messageJson)) {
        saveNotices({ message });
      }
    });
     }
 
   }
removeListener
- 用于移除对应监听事件
参数
[type](String):监听事件类型
[handler](Function):回调函数
示例
   import webSocketManager from 'utils/webSoket';
   class ComponentA extends React.Component {
     componentWillUnmount() {
       webSocketManager.removeListener('hzero-message:hzero-web', this.handleMessage);
     }
 
   }
removeAllListeners
- 用于移除所有监听事件
示例
   import webSocketManager from 'utils/webSoket';
   class ComponentA extends React.Component {
     componentWillUnmount() {
       webSocketManager.removeAllListeners();
     }
 
   }
destroyWebSocket
- 用于关闭 WebSocket
示例
   import webSocketManager from 'utils/webSoket';
   class ComponentA extends React.Component {
     componentWillUnmount() {
       webSocketManager.destroyWebSocket();
     }
 
   }