1

Irc サーバーに接続し、接続中にいくつかのコマンドを送信するソケットがあります。

次のようです。

        $socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, IMEOUT);
    stream_set_timeout($socket, TIMEOUT);
        fputs($socket, "SVSLIST\n");

ただし、少し時間がかかります (ほとんどの場合 0.5 秒ですが、最大 1.5 秒の場合もあります)。php スクリプトと irc サーバーの両方が同じマシンで動作することは言うまでもありません。

どうすればこのプロセスをスピードアップできますか?それを行うために、さまざまな種類のメカニズム(httpdサーバーをそのircサーバーのモジュールとして構築し、readfileをリダイレクトしてクエリを実行する)でreadfileを使用していましたが、かなり高速でした..速度を上げる方法はありますか?ありがとう。

4

1 に答える 1

0

fsockopen() の最後のパラメーターはタイムアウトです。これを低い値に設定すると、次のようにスクリプトがより速く完了します。

$socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, 0.1);

また...このコードを知っておく必要があります:

$socket = fsockopen('www.mysite.com', 80);

以下よりもかなり遅い:

$socket = fsockopen(gethostbyname('www.mysite.com'=, 80);

最後に、スクリプトを IRC サーバーと同じマシンでローカルに実行する必要がある場合は、マシンのパブリック IP アドレスの代わりに 127.0.0.1 を使用して接続します。

于 2013-01-20T00:19:30.517 に答える