资讯专栏INFORMATION COLUMN

webSocket

wangym / 1180人阅读

摘要:跟没有关系,只是复用了握手通道,用来升级协议。的作用轮询客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步。如果在设定的时间段内未收到通知,则服务器发送响应以终止打开的请求。

webSocket是什么

webSocket是HTML5新出的一种协议,底层是基于TCP/IP协议的。跟http没有关系,只是复用了http握手通道,用来升级协议。

webSocket的作用

轮询:客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步。缺点:

浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

长轮询:浏览器向服务器发送请求,服务器将请求保持打开一段时间。如果在该时间段内收到通知,则将包含该消息的响应发送到客户端。如果在设定的时间段内未收到通知,则服务器发送响应以终止打开的请求。缺点:

当具有较高的消息量时,长轮询不会提供比传统轮询更大的性能改进

服务器端会阻塞请求直到有数据传递或超时才返回

使用webSocket浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
优点:

能更好的节省服务器资源和带宽

支持双向通信,实时性更强

可以发送文本,也可以发送二进制数据

webSocket的使用

服务端:

var app = require("express")();
var WebSocket = require("ws");
var wss = new WebSocket.Server({ port: 8080 });
wss.on("connection", function connection(ws) {
    ws.on("message", function incoming(message) {
        console.log(message);
    });
    ws.send("the content from server");
});
app.listen(3000,() => {
    console.log("you are listening port 3000");
});

客户端:

webSocket应用场景

社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、基于位置的应用、在线教育、智能家居等需要高实时的场景

参考资料:

Comet:基于 HTTP 长连接的“服务器推”技术

Benefits of WebSocket

WebSocket:5分钟从入门到精通

《web性能优化权威指南》

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98148.html

相关文章

  • WebSocket系列之基础知识入门篇

    摘要:概述本文是系列的第一篇,主要介绍相关的基础协议知识和。客户端收到响应后,立即发起下一次的请求。收到消息通过事件来接收消息。类型则需要传递一个对象作为参数,相关的内容也将在本系列第二篇中进行介绍。 概述 本文是WebSocket系列的第一篇,主要介绍WebSocket相关的基础协议知识和API。由于WebSocket的相关介绍在MDN中分布较乱,初学者不太容易入门,因此通过本文将相关基础...

    Yuqi 评论0 收藏0
  • WebSocket其实没那么难

    摘要:服务端确认协议版本,升级为协议。自己写了一个例子,服务端在开始连接后,利用定时器主动向客户端发送随机数,客户端也可以发给服务器消息,然后服务器返回这条消息给客户端。 写在前面 webSocket是一项可以让服务器将数据主动推送给客户端的技术。前几天写了一个日志功能,日志数据需要实时更新。正好项目中有封装好的WebSocket组件,且接口支持webSocket,就用它实现了。也是第一次用...

    CoderDock 评论0 收藏0
  • WebSocket就这么回事儿

    摘要:服务端确认协议版本,升级为协议。自己写了一个例子,服务端在开始连接后,利用定时器主动向客户端发送随机数,客户端也可以发给服务器消息,然后服务器返回这条消息给客户端。做的事情就是给页面的元素绑定事件。 写在前面webSocket是一项可以让服务器将数据主动推送给客户端的技术。前几天写了一个日志功能,日志数据需要实时更新。正好项目中有封装好的WebSocket组件,且接口支持webSock...

    ruicbAndroid 评论0 收藏0
  • websocket简单使用

    摘要:简单实现参考此文章只限于版本大于前期准备端这里会在开始连接时就调用这里会挺住等待发送消息先执行这里在这里停住等待二加密实现这里应该是要填写加密的文件此处没有深入研究三服务器和浏览器的实现此处先执行代码然后再打开浏览器就可以看到过程同步例子 简单实现 参考:https://websockets.readthedoc...PS:此文章只限于python版本大于3.6 前期准备 pip in...

    fxp 评论0 收藏0
  • 【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Consideration

    摘要:概述本文为协议的第十一章,本文翻译的主要内容为的相关注意事项。应用协议使用这个协议规范互操作性注意事项使用时需要使用或者更高版本的协议。安全性注意事项见安全性注意事项一节。 概述 本文为 WebSocket 协议的第十一章,本文翻译的主要内容为 WebSocket 的 IANA 相关注意事项。 IANA 注意事项(协议正文) 11.1 注册新 URI 协议 11.1.1 注册 ws 协...

    amc 评论0 收藏0

发表评论

0条评论

wangym

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<