使用 PHP/JavaScript 将通知从服务器推送到用户

2022-08-30 12:45:11

短:有没有办法将数据从服务器推送到登录的用户会话,而无需该用户发出HTTP请求?

长(er):我正在Apache / PHP / MySQL服务器上构建一个HTML5应用程序,该应用程序可以提供给移动设备上的用户(或者可能通过PhoneGap应用程序)。

我想让用户知道何时有来自应用程序的新信息,而不会通过强制该用户执行对服务器的调用或要求AJAX调用来产生过多的数据费用(是的,我知道它可以检查单字节cookie,但我宁愿将其设为零)。

一个很好的例子是在提交时从一个用户向另一个用户发送两个用户之间的聊天消息。


答案 1

在现代浏览器,Websockets或较旧的浏览器中,“长轮询”。还有一些库可以抽象其中的一些(如彗星)。

现在使用的一个非常常见的库是 socket.io 它自动连接到可用的最佳技术,如果可用,则使用webSockets,如果可用,则回退到其他技术,如长轮询。

其他一些参考资料:

如何实现基本的“长轮询”?

iPhone 上的 COMET(服务器推送到客户端)

有关长轮询的更多信息

长轮询和使用彗星之间有区别吗?

用网络袜子推动网络

哦,HTML5,将数据推送到我的手机


答案 2

我推荐 Socket.io

它利用

WebSocket, FlashSocket, HTML file(for IE), XHR long-polling, JSONP-polling

它与Node.js这意味着它具有非阻塞性质。

在实时功能中,并发性是一个大问题

因此,Node.js和 Socket.io 的非阻塞性质将对您有所帮助


推荐