Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用node.js作为长轮询的代理_Javascript_Php_Node.js_Long Polling - Fatal编程技术网

Javascript 使用node.js作为长轮询的代理

Javascript 使用node.js作为长轮询的代理,javascript,php,node.js,long-polling,Javascript,Php,Node.js,Long Polling,我有一个用于移动设备的聊天应用程序,它使用php REST服务进行通信 一切正常,但希望使用长轮询查询新消息,以减少设备上的电池消耗和带宽 我已经做了一些调查,似乎apache不太适合这种类型的请求,因为它的线程模型 相反,Node.js似乎使用事件驱动执行,这非常适合此用途,但我想保留我的php服务,因此考虑创建一个节点服务器来处理长轮询,并轮询php服务,直到数据可用为止(这两个服务都将在openshift上) 因此,问题是: 1-有更好的方法吗 2-如果没有,在节点服务器上应该如何处理(请

我有一个用于移动设备的聊天应用程序,它使用php REST服务进行通信

一切正常,但希望使用长轮询查询新消息,以减少设备上的电池消耗和带宽

我已经做了一些调查,似乎apache不太适合这种类型的请求,因为它的线程模型

相反,Node.js似乎使用事件驱动执行,这非常适合此用途,但我想保留我的php服务,因此考虑创建一个节点服务器来处理长轮询,并轮询php服务,直到数据可用为止(这两个服务都将在openshift上)

因此,问题是:

1-有更好的方法吗

2-如果没有,在节点服务器上应该如何处理(请编写示例代码,而不是伪代码,我知道我必须保留连接,创建异步任务进行轮询,等等,但这是我为node.js编写的第一个程序,我有点不知所措)

谢谢

编辑


推送服务的使用被放弃,因为移动应用程序是在内部分发的,所以没有gcm或Apple Push

另一种选择是使用couchbase,在您的服务器端,您可以使用couchbase和mobile,您可以使用couchbase lite。此外,如果您使用Android,您可以使用Google云消息,对于iOS,您可以使用Apple推送通知。正如我所说,要保留实际代码,使用couchbase会让我从零开始启动一个新的应用程序,但仍然需要轮询新的数据?Push被丢弃,因为它不是google play应用程序,而是它的内部应用程序。