将通知推送到客户端浏览器

Har*_*M V 19 javascript php ajax jquery cakephp

我想创建一个应用程序,当超级用户点击链接时,用户应该获得通知,或者更确切地说是pdf等内容,以便他们在屏幕上访问.

使用案例:当教师想要与学生分享PDF时,他应该能够通知学生可下载的PDF文件,并且必须提供链接以执行相同的操作.

Tyl*_*ien 24

有几种方法可以实现这一目标.最受支持的方式是通过一种称为Comet或长轮询的技术.基本上,客户端向服务器发送请求,并且服务器在某些事件发生之前不发送响应.这给出了服务器推送到客户端的错觉.

还有其他方法和技术实际上允许推送到客户端而不是仅仅模拟它(即Web套接字),但许多浏览器不支持它们.


Leo*_*Leo 11

由于您希望在CakePHP中实现此功能(因此我假设它是基于Web的应用程序),因此用户必须打开"活动"页面才能接收推送消息.

值得看看前两个答案,还要考虑其他网站如何实现这一目标.像Facebook,BBC,Stackoverflow这样的网站都使用技术来保持页面最新.

我怀疑Facebook只是使用一些在循环/计时器中运行的AJAX来定期提取更新,使其看起来像推送.如果更新请求通常足够(短时间段),它几乎看起来是实时的.如果它是一个很长的时期,它看起来像一个拉.在最新和浏览器/处理器/网络颠簸之间找到适当的平衡是关键.

实际的请求不应该破坏系统,但在某些应用程序中的回复可能会大得多.在您的情况下,每个方向的数据都很小,因此您可以使请求循环很短.

实验!


Dis*_*dev 6

标准HTTP协议不允许从服务器推送到客户端.您可以通过使用小间隔的AJAX请求来模拟这一点.


Mar*_*tin 6

看看php-amqplibRabbitMQ.它们可以帮助您实施AMQP(高级消息队列协议).基本上,您的网页可以通过向其发送消息来进行更新.

[编辑]我最近遇到了Pusher,我已经为项目实施了这个项目.它是一个HTML5 WebSocket驱动的实时消息服务.它运作良好,并有一个免费的底层计划.它的实现也非常简单.


小智 5

与socket.io和express一起检查node.js.这里有很好的起点