发布于 1970-01-01 08:00
  • 10 个回答
    • 可以用websocket ,这里找到了一个例子,web消息推送
      https://github.com/walkor/web-msg-sender

      2022-12-01 14:42 回答
    • ajax,长连接。楼下继续补充

      2022-12-01 14:42 回答
    • 一般有2种方式:
      第一种就是客户端(浏览器)通过轮询的方式每隔一段时间请求一次服务器(AJAX请求),属于pull方式;还有一种是使用WebSocket和服务器保持长链接,服务器在有更新的时候推送消息给客户端,属于push的方式,不过这种方式需要较新的浏览器的支持。
      需要根据项目的实际情况,来选择合适的实现方式。

      2022-12-01 14:42 回答
    • linux上开一个守护进程,在发送消息成功时候把消息id写入redis队列,守护进程专门监控redis队列,只要一有消息即可弹出提醒,做到实时提醒

      2022-12-01 14:42 回答
    • WebSocket
      楼下请补充。

      2022-12-01 14:42 回答
    • 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/

      2022-12-01 14:42 回答
    • websocket有点浪费,可以用SSE

      2022-12-01 14:42 回答
    • 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是把浏览器轮询,搬到了服务器端去轮询.

      2022-12-01 14:42 回答
    • 2022-12-01 14:42 回答
    • 楼上的说得很全面了,刚才突发奇想,把私信通知设置成iframe,设置meta refresh也行

      2022-12-01 14:42 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有