我有一个套接字,它连接到irc服务器,并在连接期间发送一些命令。
看起来是这样的:
$socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, IMEOUT);
stream_set_timeout($socket, TIMEOUT);
fputs($socket, "SVSLIST\n");但是它花费的时间有点长(大部分时间是0.5秒,但有时长达1.5秒),更不用说php脚本和irc服务器在同一台机器上工作了。
所以我想问一下,我怎样才能加速这个过程呢?我使用具有不同机制的readfile (构建一个httpd服务器作为irc服务器中的模块,然后重定向readfile以执行查询)来完成此操作,速度相当快。有没有办法提高速度?谢谢。
发布于 2013-01-20 08:19:31
fsockopen()的最后一个参数是超时,将其设置为一个较低的值以使脚本更快完成,如下所示:
$socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, 0.1);还有..。你必须知道这段代码:
$socket = fsockopen('www.mysite.com', 80);比下面的要慢得多:
$socket = fsockopen(gethostbyname('www.mysite.com'=, 80);最后一件事。如果您的脚本必须在IRC服务器的同一台计算机上本地运行,则只需使用127.0.0.1进行连接,而不是使用计算机的公共IP地址。
https://stackoverflow.com/questions/14420308
复制相似问题