解决websocket出现的问题

307 阅读1分钟

整个流程大概是: 创建连接-->连接成功-->接受消息-->关闭连接-->异常检测-->重新连接-->停止重连-->心跳检测-->停止心跳检测-->开始计算运行时间-->停止计算运行时间

1.创建react实例 ws = new WebSocket(url,[protocol]);//url:指定连接的服务器,protocol:可接受的子协议

2.可以先检测客户端的浏览器是否支持websocket协议,这里可以去www.baidu

3.在项目中遇到了重复连接的问题,主要这几个方面解决的。首先查看websocket的执行顺序,控制台打印时的执行顺序为,创建连接-->接受数据-->异常检测-->关闭,其次了解react中的生命周期执行顺序,首先componentDidMount挂载的时候会进行首次渲染,但是在后期想要继续更新实时数据这条路不可行,所以用到了componentUpdata这个钩子函数,对传进来的props进行判断,但是在这个钩子函数的子里面需要做一下处理,如果props发现变化,就把上次打开的关掉,关掉之后触发websocket重新进行连接,最后销毁的时候再关闭一遍。