WebSocket
你可能会说
聊天室怎么实时收到别人的新消息?
一条保持打开的双向连接,双方可以随时互相发消息制作在线聊天或多人协同编辑功能时,客户端和服务端需要保持连接。普通 HTTP 请求是每次提问、收到回复后就结束连接;WebSocket 建立后会一直保持打开,任何一方有新消息都可以随时发送给对方。长连接可能因为网络波动中断,因此通常需要配合心跳检测和断线自动重连。
先知道
也常被叫作WebSocket长连接双向连接
聊天室怎么实时收到别人的新消息?
有新消息吗?答没有问有新消息吗?答有 1 条每次都要重新问;间隔内到达的消息要等下一轮轮询间隔内到达的消息有延迟;间隔越短越费请求。
普通请求有固定延迟:轮询间隔内到达的消息要等下一轮才被发现;间隔越短越费请求。
WebSocket 到达即推送:连接保持打开,服务器一有新消息就发过来;延迟只取决于网络本身。
双向都能发:不只是服务器推:客户端也可以随时通过同一条连接发消息。
聊天室现在每秒轮询新消息。请改用 WebSocket:连接建立后保持打开,新消息到达即推送。断线要自动重连;改完后在开发者工具的 Network 面板确认是长连接,并测试断网恢复后能继续收到消息。