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();
}
}