草庐IT

阻塞IO

全部标签

php - 无法连接到非阻塞套接字

这让我抓狂。我必须在php5.3中创建一个非常简单的非阻塞套接字脚本,其中客户端连接到服务器,两者都使用非阻塞套接字。我试过了phpsocketdaemon和来自phpmanual的示例,但在这两种情况下,当我尝试连接到服务器时,我都会收到以下错误:socket_connect()[function.socket-connect]:unabletoconnect[10035]:Anon-blockingsocketoperationcouldnotbecompletedimmediately发生错误的我的客户端脚本:$service_port=2002;$address='127.0.

php - Windows/Temp 目录中充满了阻塞服务器的 Php Session 文件

大家好,我是意大利人,对于如下错误我提前道歉:)对于我的服务器来说,那是黑暗的日子,我疯狂地想知道可能是什么问题。以为是数据库配置不好,或者是硬盘有问题,想着换服务器。当它通过碎片整理和磁盘扫描(不可运行)测试硬盘时,我决定打开CCleaner,奇迹发生了。Windows/Temp文件夹被完全阻止,您甚至无法打开IT。CCleaner在10小时内清理了文件夹:')10小时清理一个文件夹!经过一天的清理,今天早上我去检查了一下,里面有18000个0kb的文件或最大10kb的文件都称为“sess_0a5u2ou87......”(sess_是前缀,我认为后面跟着通过md5)。当我打开其中一

处理 socket.io 客户端的 PHP/C++ 服务器

有一个网站使用socket.io作为其“API”。从本质上讲,任何人都可以下载网站的源代码并对其进行修改以轻松制作自己的客户端。例如,我有六个客户端都运行相同的自定义客户端脚本。该脚本托管在我自己的域中,而不是使用socket.ioAPI的域中。我希望能够跟踪谁连接了,并保留了某些数据的总数。例如,如果每个客户端都有0.5余额,我希望他们能够知道总数是3余额,因为服务器。我能想到的最明显的方法是将AJAX与对MySQL的调用结合起来以跟踪事物,但这似乎是冗长的。我也可以做CURL,但这在技术上具有挑战性。是否有一种简单直接的方法可以从六个不同的socket.io客户端简单地计算余额并将

php - 未捕获的异常 'Google_IO_Exception' 消息为“HTTP 错误 : Unable to connect

我有一个任务(查询)运行一些从gmail邮箱检索数据的php代码。它一直运行良好,直到上周五(2015年4月10日),现在我收到此错误日志:E11:58:26.0942015-04-152003.38KB14.2s/code.php0.1.0.2--[15/Apr/2015:07:58:26-0700]"POST/code.phpHTTP/1.1"2003462"https://xxxxxxxxx.appspot.com/start.php?email=test@email.com""AppEngine-Google;(+http://code.google.com/appengine

php - 通过 cURL 访问 import.io API 时无法获取 JSON 结果中的实际 html

当我通过复制api-url在浏览器中手动访问导入api时,我得到了正确的json结果,其中html字段也有html结果。但是,当我使用PHP通过cURL访问相同的apiurl时,我只会在以下json结果中得到它:{"name":"my_html","type":"HTML"}..所以没有实际的html。我使用以下函数在php中cURLAPI:publicfunctionqueryio($connectorGuid,$url,$input,$userGuid,$apiKey){$io_url="https://api.import.io/store/data/".$connectorGu

php - 如何针对跨域的 PHP session ID 对 Socket.IO 进行身份验证

我在node.mydomain.com上设置了一个节点/Socket.IO,在www.mydomain.com上设置了一个Apache/PHP堆栈。目前我正在用这样的东西做身份验证:Client:在连接时,发送自定义authorization事件,其中包括PHPSESSID到服务器服务器:在授权时,使用此cookie调用api.php获取用户信息,将此身份信息发送给客户端客户端:现在可以使用此身份执行操作这有点笨拙,因为Socket.IO有一个我想使用的身份验证位置(Onthiswiki)。问题是我不知道如何将PHPSESSIDcookie信息从客户端发送到服务器。它们位于不同的域中,

php - 如何进行非阻塞 php exec 调用?

我需要将文本回显到Linux中的命名管道(FIFO)。即使我在后台运行“&”并将所有输出重定向到/dev/null,shell_exec调用始终会阻塞。这个问题在整个互联网上有很多答案,它们基本上都指向以下php手册部分:Ifaprogramisstartedwiththisfunction,inorderforittocontinuerunninginthebackground,theoutputoftheprogrammustberedirectedtoafileoranotheroutputstream.FailingtodosowillcausePHPtohanguntilth

php - 如何以非阻塞方式在 PHP 中休眠?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowcanIstopPHPsleep()affectingmywholePHPcode?PHP:Outputdatabeforeandaftersleep()?我在本地主机中有一个php代码,它回显数据并在两者之间休眠。在客户端,我能够及时看到接收到的数据并进行渲染。$condition=true;while($condition){$data=get_some_data();//maynotfetchnewdatatobesent,eachiteration.echo$data;ob_flush();$i

php - 将大文件上传到服务器(非阻塞)

所以我正在开发一个需要与4d应用程序通信的php应用程序。4d应用程序使用SOAP网络服务进行外部通信。SOAP网络服务具有启用文件上传到4d应用程序的功能。由于4d应用程序web服务的文件上传功能的破坏性,我们实现了一个进度条来将文件上传到web服务器,然后在成功后尝试将文件发送到4d应用程序服务器。但对于客户端来说,这并不好,因为该人需要等待初始文件上传到服务器,然后在执行文件上传功能时再次将文件从Web服务器传输到4d应用程序的服务器。我的问题是,有什么方法可以以非阻塞方式处理文件上传吗?甚至可能一起绕过SOAP函数。更新:我在想也许可以使用RabbitMQ之类的东西对每个文件上

PHP 非阻塞 soap 请求

用户在我的网站上注册后,我需要以不阻塞用户的方式发送soap请求。如果soap服务器运行缓慢,我不希望最终用户不得不等待它。有没有一种方法可以发送请求并让我的主要PHP应用程序继续运行而无需等待soap服务器的响应?如果没有,是否有办法在soap请求上设置最大超时,并在请求大于最大超时时处理功能?编辑:理想情况下,我希望通过请求的最大超时来处理这个问题。我有以下内容://ini_set('default_socket_timeout',1);$streamOptions=array('http'=>array('timeout'=>0.01));$streamContext=strea