javascript - 如何实现新消息通知?
黄舟
黄舟 2017-04-11 11:14:40
[JavaScript讨论组]

例如,希望实现有新消息通知用户,目前想到的方法是,settimeout去不断发起ajax向后端请求数据

这种方案有什么弊端吗?

或者有什么更好的方案?可以由服务器push给浏览器?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(9)
PHPz

ajax 时间间隔太短 轮循会对服务端造成很大的压力,时间间隔太长,消息通知不及时。

最好用websocket 就是专门做这种事情的啊

ringa_lee

嗯 ajax确实很费服务器 所以用websocket
看看这篇文章:
websocket

PHP中文网

1、AJAX定时,但达不到及时
2、服务端推送,多了就慢要花钱...
3、用楼上说的WebSocket吧,长监听,emit/on

大家讲道理

setTimeout是最笨的方法,开销大,而且可能一直做无用功。
前段时间我们做了个类似的功能,用的是socket.io,服务器是node。

PHPz

用workerman做过

PHP中文网

用第三方来做就好了,没有必要自己搭建后端。看这篇文章【Pusher 提供websocket的广播服务】

  1. 实时推送采用websocket

  2. ajax 效率太低

怪我咯

websocket

PHP中文网

长连接吗?走的什么协议? 你补充一下场景,现在太笼统了,方案很多的

ringa_lee

使用ajax很消耗资源,webscoket就能完美解决问题!不过要针对一些特殊浏览器做特殊处理,比如ie8以下

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号