为啥知乎上消息提醒的红色圆点不用刷新就会自动出现
很容易的。你可以没事向服务器发一条http query,然后有新消息了服务器就响应你,没有新消息就不理直到timeout。
■网友
的这个是用 http://socket.io 实现的。网上有文章讲具体的原理和实现效果。
■网友
你听说过轮询吗?
■网友
菜鸟 :每 x 秒请求一次服务器.有没有新消息都立刻响应.正常 :请求一次服务器.如果有新消息就响应.如果没有新消息就先hold住等有消息再响应或到超时.客户收到响应或者发现请求超时就再发一个请求.(QQ邮箱网页版 f12 一下 )还有就是websocket
■网友
【为啥上消息提醒的红色圆点不用刷新就会自动出现】 应用了一种被称为 websocket 的技术,这是一种通讯协议,与 HTTP/HTTPS/FTP 类似的东西
这种协议是建立的 TCP 协议之上的,TCP 协议就是相当于打电话,呼叫者和接听者需要同时在线并给予反馈,而相对的有一种 UDP 协议,就是短信的机制,发送消息时接收者(指设备)并不需要通知发送人已经收到信息。
建立在 TCP 上的 websoket 开销较少,只需要心跳机制保持连接,有新消息时有实时性且传递数据的压缩性好。
当然解决方案不止这一种,用JS写个定时执行脚本也能简单的达到效果,这种比较适合小网站,并发不高的场景,量大JS的频繁请求会让服务器压力倍增,甚至出现脚本打挂服务器问题。
■网友
按f12。你可以发现这个,楼上的是做web开发的吗?
看高亮部分的请求信息。现在这种通知系统用的都是websocket协议。
■网友
猜测是http长连接。客户端发起http request,服务端收到后并不立即response,直到有新消息。
推荐阅读
- ■个税扣缴新方式来了!对年收入不超过6万元的人来说是个好消息
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 骨裂|
- 知乎有没有必要增加一个特别关注功能
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
