前端如何实现即时通讯?webSocket

497 阅读1分钟

严格意义上:HTTP协议只能做到客户端向服务端发请求,服务器做出响应,做不到服务器主动向客户端推送信息

那么如果服务器数据更新了,想要即时通知客户端怎么办? 即使通信需求:,服务器数据一旦有了更新,希望推送给浏览器

1.即时通信有哪些方案?

2.为什么使用了其中的一个方案!

基于WEb的前端,存在一下几种可实现即使通讯的方式

短轮询:(历史方案)开一个定时器,每隔一段时间发请求,(实时性不强)

COmet-ajax长轮询:发送一个请求,服务器只要一直不更新,就一直阻塞(服务器压力过大 )

SSE:利用了HTTp协议,流数据的传输,并不是严格意义上的双向通讯,无法复用连接

WEBsocket(主流)性能和效率都很高,这是基于TCP协议的全新的,独立的协议,作用是服务器和客户端之间实时的双向通信 WebSocket协议与http协议保持兼容,但它不会融入HTTP协议,仅作为HTML5的一部分 优点:真正意义上的双向实时通讯,性能好,延迟低

image.png