类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2117字,纯文字阅读大概需要4分钟。
内容图文
![类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?](/upload/InfoBanner/zyjiaocheng/239/27a84cfcdddf4cb9acfeefc1470e5ed1.jpg)
之前听说可以用长轮询,还有有没有什么更好的办法?谢谢大家。
回复内容:
类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?
之前听说可以用长轮询,还有有没有什么更好的办法?谢谢大家。
可以用websocket ,这里找到了一个例子,web消息推送
https://github.com/walkor/web-msg-sender
ajax,长连接。楼下继续补充
一般有2种方式:
第一种就是客户端(浏览器)通过轮询的方式每隔一段时间请求一次服务器(AJAX请求),属于pull方式;还有一种是使用WebSocket和服务器保持长链接,服务器在有更新的时候推送消息给客户端,属于push的方式,不过这种方式需要较新的浏览器的支持。
需要根据项目的实际情况,来选择合适的实现方式。
linux上开一个守护进程,在发送消息成功时候把消息id写入redis队列,守护进程专门监控redis队列,只要一有消息即可弹出提醒,做到实时提醒
WebSocket
楼下请补充。
可以参考一下这个:
http://segmentfault.com/q/1010000002793033/a-1020000002793276
在tab被激活的时候向后端发请求, 有更新就显示相应的提示.
然后每隔30秒发一次请求检测状态.
1、h5 websocket
2、ajax,commet 长连接。
comet,基于 HTTP长连接的“服务器推”技术,是一种新的 Web 应用架构。同事说新浪微博就是用的这种技术;
有个简单的介绍
http://www.cleey.com/blog/single/id/707.html
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
websocket有点浪费,可以用SSE
AJAX定时轮询实现起来应该是最简单的,服务器端不用做大的修改,虽然很多人认为这样做效率很低,但个人认为基于HTTP无状态实现高并发还是可以的,服务器可以根据系统负载合理地通知浏览器控制轮询间隔的时间.
推送功能每5分钟秒轮询一次也是合理的.聊天功能每5秒轮询一次也不算太久.浏览器端可以用JS编程,如果连续N次每隔5秒轮询数据都是空的话,可以改为每隔1分钟轮询一次.如果超过指定时间(页面长时间失去焦点),页面没有任何操作,则可以考虑关闭轮询.
新浪微博的聊天功能应该用的是Comet长轮询,浏览器发一个请求到服务器,服务器拿到请求后进入轮询(即使是事件驱动,也是有开销的),有消息才返回给浏览器,新浪微博的聊天Comet服务器貌似用的是Jetty(Java)实现的:
curl -I http://im.weibo.com/
Server: Jetty(9.2.9.v20150224)
感觉Comet是把浏览器轮询,搬到了服务器端去轮询.
http://www.w3school.com.cn/html5/html_5_serversentevents.asp
楼上的说得很全面了,刚才突发奇想,把私信通知设置成iframe,设置meta refresh也行
内容总结
以上是互联网集市为您收集整理的类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?全部内容,希望文章能够帮你解决类似微博我不刷新网页,然后通知有私信、评论等等的,这个功能是咋实现的呢?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。