php可不可以socket通信长连接,不断开,然后实现多次通讯?

是这样的,想请讲解下,php可不可以socket通信长连接,不断开,然后实现多次通讯?
最新回答
傲慢与偏见

2024-11-22 08:35:57

理论上是可以的,使用PHP提供的socket相关API,主要问题是脚本执行时间。

PHP运行模式分为非
命令行
模式及命令行模式。
非命令行模式一般是用于B/S交互,max_execution_time默认为非零,也就是限制脚本执行时间。即使你设置max_execution_time为0也面临用户浏览器请求的超时问题。
命令行模式下set_limit_time默认为0,做为本地脚本执行,所以没有上述的问题。

PHP SOCKET相关文档:
http://cn2.php.net/manual/zh/book.sockets.php
追问
与服务器建立了一个长连接,用户提交一个id,php就打包发给服务器,服务器再返回相应的信息。现在如果是两个请求的话第一个请求没有断开,第二个请求就得不到服务器返回的信息。。。这样一个长连接可以实现么?还是要使用短连接?
追答
“现在如果是两个请求的话第一个请求没有断开,第二个请求就得不到服务器返回的信息。。。这样一个长连接可以实现么?还是要使用短连接?”
不太理解上述话的意思。如果PHP只是简单的做为Web脚本去连接服务器查询相应信息的话,直接用socket连接取回数据后关闭socket就行了。
如果你是想一直保持这个链接重复利用以提高效率的话,我感觉就没必要了。就像使用Mysql API一样,保持长链接是需要额外的工作的。
大鱼塘总裁

2024-11-22 13:00:43

不可以

和PHP没有关系,因为走的是HTTP模式,HTTP模式本身就是短连接
∠寂寞染指流年

2024-11-22 13:43:42

当然可以,我都已经做过udp socket云端门禁管理系统,服务器socket监控设备连接状态,设备通过发送心跳包来维持连接,从而实现长连接,更多详情
http://www.100txy.com/article/54.html