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

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

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

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

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

【问题讨论】:

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

标签: php ajax html websocket phpwebsocket


【解决方案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。
猜你喜欢
  • 2020-10-02
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2018-11-13
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多