在PHP和jQuery之间发送数据

时间:2013-07-12 10:29:00

标签: php jquery

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

我在虚拟专用主机上使用CodeIgniter 2,因此我可以选择安装完成任务所需的任何内容。

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

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

我已经花了几天时间摸索这个问题,因为我只是掌握了jQuery,而我几乎不了解Node.js或Socket.io,或者他们能做什么,不能做什么,或 - 如前所述 - 他们如何与PHP联系。

欢迎任何建议。

2 个答案:

答案 0 :(得分:2)

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

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

如果您想设置斜槽,那么您可以使用推杆php library本身(可能需要稍微修改它以与斜槽一起使用)。如果你想使用faye,那么这里有一个php库写了我自己:faye php wrapper

答案 1 :(得分:0)

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

这个anwser给出了一个很酷的例子: How do I implement basic "Long Polling"?

相关问题