0

我正在尝试为 PHP 应用程序构建通知系统。每次进行预订时,我们都需要在应用程序内的指定用户帐户类型中显示通知。

我在虚拟专用主机上使用 CodeIgniter 2,所以我可以选择请求安装完成工作所需的任何东西。

到目前为止,我知道 PHP 在如何触发 jQuery 方面的能力有限,因为它仅限于 Web 浏览器。我知道 Node.js 和 Socket.io 可以做我想做的事,但是如果有的话,它会如何与 PHP 结合呢?

我也知道轮询机制会很糟糕。我考虑过一种方法,通过 PHP 将行 ID 发送到确认页面中的 jQuery 脚本,理论上可以实现我的想法,但这将依赖于客户的 Web 浏览器,即有点弱。

我花了几天时间在这个问题上摸索,因为我才刚刚开始掌握 jQuery,而我对 Node.js 或 Socket.io 几乎一无所知,或者他们能做什么和不能做什么,或者——前面提到过——它们是如何与 PHP 连接的。

任何的建议都受欢迎。

4

2 回答 2

2

使用实时推送方法,只要服务器中发生事件,服务器就会将数据推送到客户端(频道订阅者)。这种方法比轮询等pull方法先进,这将是一个实时通信(即客户端从服务器获取实时更新,没有时间。在pull方法中,每个查询之间有一个时间间隔)。实时推送方法示例:Fayepushersocket.ioslanger

大多数实时推送方法都是基于 ruby​​ 或 nodejs 构建的。因此,如果您希望设置实时服务器,则必须在服务器中设置它们(可能是 ruby​​ 或 nodejs),并且可以使用 curl 语句从 php 与该服务器通信。也有可用于这些操作的 php 库。

如果您喜欢设置 slanger,那么您可以使用 pusher php 库本身(可能需要稍微修改它以与 slanger 一起使用)。如果你喜欢使用 faye 那么这里有一个我自己写的 php 库:faye php wrapper

于 2013-07-12T10:47:21.477 回答
0

您可以将通知存储在数据库中,并带有相应的时间戳。然后,使用长池在 jQuery 中接收消息,调用 PHP 进行通知。

这个答案中给出了很酷的例子: 如何实现基本的“长轮询”?

于 2013-07-12T10:47:31.680 回答