实时消息推送怎么做?

求问比如 segmentfault 的这个消息推送图片描述

有消息来的时候小铃铛会有一个红色的数字,点开之后又新的消息,这个不用刷新页面就能实现,而且也不用ajax,该怎么做?

阅读 13k
8 个回答

clipboard.png

关于WEB推送刚好我最近在做,可以给你一些方案:

一般来说,如果对于消息的实时性要求不是特别高,比如10秒中检查一次消息也可以接受,这时可以使用最简单的 polling 方案,即每隔一定时间向服务器请求一次接口来获取是否有未读消息,这种方式实现起来相当简单,而且对浏览器的兼容性很好。

还有一种被广泛使用的方式,就是楼上所说的,使用 webSocket,前面已经说很多了,我就不多讲了。

HTML5有一个新的推送标准,SSE(Server-Side Event),可以用来做实时推送,相对websocket来说实现起来更简单,但对浏览器的支持不是太好(现代浏览器都可以支持,但IE和Edge全系不支持)。

应该是用的websocket,可以看一下workerman框架,实践一下websocket.
workerman

如果考虑到php, 楼上正解。
另外推荐 pomelo, 分布式、觉得也比较稳定,就是曲线比较陡。

图片描述

目前成熟的服务器推送的方案是jsonp

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题