Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
Php 将通知服务器推送到选定的客户端_Php_Python_Rest - Fatal编程技术网

Php 将通知服务器推送到选定的客户端

Php 将通知服务器推送到选定的客户端,php,python,rest,Php,Python,Rest,目前,我正在使用带有RESTAPI的Web ApplicationLAMP堆栈与clientsPython桌面应用程序进行通信 客户端可以向服务器注册,并通过RESTAPI向服务器发送状态 现在,我需要将通知从web applicationserver推送到选定的客户端 我的问题是如何从serverphp发送推送通知并从clientspython读取它 所以基本上,您可以在某个时间间隔~0==realtime从客户端查询服务器,并询问它是否有新闻 通常apache不能处理长等待连接,因为它的线程

目前,我正在使用带有RESTAPI的Web ApplicationLAMP堆栈与clientsPython桌面应用程序进行通信

客户端可以向服务器注册,并通过RESTAPI向服务器发送状态

现在,我需要将通知从web applicationserver推送到选定的客户端


我的问题是如何从serverphp发送推送通知并从clientspython读取它

所以基本上,您可以在某个时间间隔~0==realtime从客户端查询服务器,并询问它是否有新闻

通常apache不能处理长等待连接,因为它的线程/分叉请求处理模型

您可以尝试切换到nginx,因为它使用套接字多路复用select/epoll/kqueue,所以它可以处理许多并发的长等待连接

或者,您可以考虑使用node.js替换php应用程序,这绝对是为了实现这一目的


不错的解决方案是web框架/语言+redis发布/订阅功能+node.js。您可以正常请求web应用程序,但与node.js服务器的连接过于开放,node.js服务器会在需要时通知您的客户端。如果你想告诉node.js通知一些客户端,你可以通过redis pub/sub从你的web应用程序中进行。有很多方法可以做到这一点,大多数方法都涉及到服务器和客户端之间的某种预先存在的连接

如果桌面客户端通过HTTP进行通信,则可以使用或实现一些长轮询来推送通知


您还可以使用提供推送通知的第三方服务。

REST本身是否支持推送通知?否-REST是一个体系结构框架;推送的问题更多的是一个网络/协议。