从后端异步更新/通知 HTML,无需 AJAX 轮询

Posted

技术标签:

【中文标题】从后端异步更新/通知 HTML,无需 AJAX 轮询【英文标题】:Update/Notify HTML from backend asynchronously without AJAX polling 【发布时间】:2016-08-14 09:33:05 【问题描述】:

我正在为 CRM 开发仪表板,管理员可以在其中查看/处理所有订单。 要求: 每当用户从网站/移动应用程序下订单时,都会调用一个专用的 php 文件,用户数据会从该文件中插入到数据库中。现在我想在不刷新页面的情况下通知在线管理员新订单。

我知道如果您使用 AJAX 轮询很容易,但我不想使用 AJAX 轮询。我还通过参考this 教程尝试了 PHP Websocket,但不幸的是,这在实时服务器上不起作用。

如果有任何变通方法或任何技术可以实现我的要求,请告诉我。

我使用 html5 前端和 PHP 作为后端。

【问题讨论】:

访问socket.io 以获得易于使用的套接字服务器 您可以注册一个服务工作者并通过谷歌云消息(gcm)向客户端发送消息 @Jonasw,那(服务工作者)是如何工作的?我正在使用 PHP 服务工作者基本上是在后台运行的 javascript。您可以使用它来注册谷歌云消息。您的 php 脚本只需要将消息发送到 google,然后 google 将其发送到浏览器。这是相当快的,因为谷歌会定期轮询服务器,这不会消耗你的带宽 听起来很有趣,你有任何示例代码或参考/教程吗? 【参考方案1】:

您应该选择像 socket.io 这样的 WebSocket 框架。由于某些浏览器和平台的 Web 套接字限制,不直接使用 Web 套接字有许多优点。像 socket.io 这样的 Socket.io 框架通过向后兼容解决了这个问题。 Socket.io 原始后端实现在 node.js 上运行。因此,除非您不想拥有 node js,否则请寻找一个 socket.io php 包装器,如大象.io。

【讨论】:

谢谢,我会试试看。 是的,当然.. 让我先实现并测试它。 :) 太棒了。期待听到一切进展如何。 这个包似乎需要 NodeJS 0.6.5+。你能澄清一下吗? 没错。这些是 php 包装器,引擎的内部构建是 node.js。

以上是关于从后端异步更新/通知 HTML,无需 AJAX 轮询的主要内容,如果未能解决你的问题,请参考以下文章

ajax

ajax详解

Ajax

如何在 Web 推送通知中从后端发送图像?

在 C# 中从后端发送 UWP 原始通知

如何从后端通知前端?