如何在没有与 PHP 的永久连接的情况下向客户端发送通知
在我的应用程序中,我想向客户端发送一些警报。我想向客户端发送更新,而不需要类似于推送服务器的请求。
我该怎么做?
In my application I want to send some alerts to the client. I want to send updates to client without a request similar to push server.
How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在没有永久连接的情况下处理通知的最佳方法是使用人们也称为心跳功能的功能。
心跳函数是一种按一定时间间隔重复调用的函数/方法,就像您的心跳以恒定的节奏一样。
注意:上面的示例包含 jQuery 代码
$.get( ... )
,非 jQuery 方法是使用XMLHttpRequest
进行 ajax 调用代码>.上面的代码每 10 秒调用一次 php 脚本来检查新通知。可以添加新的通知,例如使用数据库内的表。例如,有一个通知表和 3 个(如果需要日期,则为 4 个)字段:用户标识符字段、消息字段和“已读”/“已发送”标志字段。
新通知将添加到表中,并且当调用心跳脚本时,它将检查新消息的用户标识符和标志字段;如果发现任何内容,则回复消息并将其标记为已发送。
The best way to handle notifications without a permanent connection is to use what people refer too as a heartbeat function.
A heartbeat function is a function/method that gets called on a interval repeatedly just like your heart beats in a constant rhythm.
Note: The above example contains jQuery code
$.get( ... )
, the non-jQuery way would be to make your ajax call usingXMLHttpRequest
.The above would call the php script every 10 seconds to check for new notifications. New notifications can be added such as using a table inside a database. For example having a notifications table and 3 (4 if you want a date) fields: a user identifier field, message field, and a 'read'/'sent' flag field.
New notifications would get added to the table, and when the heartbeat script is called it'll check the user identifier and flag fields for new messages; if any are found then respond back with the message and mark it as sent.