美文网首页
WebSocket(基于TCP的全双工通信协议)

WebSocket(基于TCP的全双工通信协议)

作者: 王果果 | 来源:发表于2022-03-11 11:09 被阅读0次

    WebSocket是一种在单个TCP连接上进行全双工通信的协议。

    • WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

    • 很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

    • 而比较新的技术去做轮询的效果是Comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在Comet中,普遍采用的长链接,也会消耗服务器资源。

    • 在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。


    WebSockets 它可以在用户的浏览器和服务器之间打开交互式通信会话。使用此API,可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。 WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的API。

    `// 创建WebSocket连接.`
    
    `const socket = new WebSocket('[ws://localhost:8080](ws://localhost:8080/)');`
    
    `// 连接成功触发`
    
    `socket.addEventListener('open', function (event) {`
    
    `socket.send('Hello Server!');`
    
    `});`
    
    
    `// 监听消息`
    
    `socket.addEventListener('message', function (event) {`
    
    `console.log('Message from server ', event.data);`
    
    `});`
    

    相关文章

      网友评论

          本文标题:WebSocket(基于TCP的全双工通信协议)

          本文链接:https://www.haomeiwen.com/subject/obucdrtx.html