websocket 的应用场景

原则上,判断标准就是以下2个:

  1. 你的应用需要提供给多个用户同时交流吗?
  2. 你的应用需要展示服务器端经常变动的数据吗?

以下是一些典型的应用场景:

  1. 社交 / 订阅

    比如微信朋友圈的实时更新提醒、点赞或评论的红点通知,比如qq的特别关注人的动态提醒,比如聊天信息的实时同步,比如新闻客户端的订阅通知等等。

  2. 多玩家游戏

    对于在线实时的多人游戏,互动效率是非常重要的,你可不想在扣动扳机之后,你的对手却已经在10秒钟之前移动了位置。

  3. 协同办公 / 编辑

    我们生活在分散式办公的时代,时常需要在不同地点同时编辑同一份文档,比如 office文档、编程文件等。

  4. 股市基金报价

    金融界瞬息万变——几乎是每毫秒都在变化。过时的信息也只能导致损失,我们人类的大脑不能持续以那样的速度处理那么多的数据,需要一些算法来帮我们处理这些事情。当你有一个显示盘来跟踪你感兴趣的公司时,你肯定想要随时知道他们的价值,而不是10秒前的数据。使用WebSocket可以流式更新这些数据变化而不需要等待。

  5. 体育实况播放

    在体育播报的体验中,减低时延是最重要的一点。

  6. 音视频聊天 / 视频会议 / 在线教育

    用WebSockets getUserMedia API和HTML5音视频元素明显是个不错的选择。WebRTC的出现顺理成章的成为我刚才概括的组合体,它看起来很有希望,但其缺乏目前浏览器的支持。

  7. 基于位置的应用

    越来越多的开发者借用移动设备的GPS功能来实现他们基于位置的网络应用。比如共享单车、共享汽车、地图GPS服务、疫情监控目标人的实时运动轨迹、运动员的轨迹分析。借用WebSocket TCP链接可以让数据飞起来。

图:http轮询(短轮询和长轮询)、websocket、SSE 三种客户端实时获取服务端的技术比较
在这里插入图片描述

概念:

  • 全双工通讯:
    又称为双向同时通信,即通信的双方可以同时发送和接收信息的信息交互方式。
  • SSE(Server Sent Events)
    就是浏览器向服务器发送了一个HTTP请求,保持长连接,服务器不断单向地向浏览器推送“信息”,这么做是为了节省网络资源,不用一直发请求,建立新连接。不过依然是基于HTTP的。
    优点:SSE和WebSocket相比,最大的优势是便利,服务端不需要第三方组件,开发难度低,SSE和轮询相比它不用处理很多请求,不用每次建立新连接,延迟低。
    缺点:如果客户端有很多需要保持很多长连接,这回占用大量内存和连接数。而且兼容性差,只能用于高级浏览器中。

另外,附上测试websocket连接的在线工具:
http://websocket.org/echo.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值