接続をリッスンして受信データを出力するスクリプトが必要です。次のコードを試しました:
header('Content-Type: text/plain; charset=utf-8');
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)\n";
} else {
while ($conn = stream_socket_accept($socket)) {
$data = fread($conn, 100);
var_dump($data);
flush();
fclose($conn);
}
fclose($socket);
}
この例に基づく: php.net/manual/en/function.stream-socket-server.php
問題は、クライアントが接続してデータを送信するときに、ページに何も表示されないことです。のようなバッファリング防止手法を使用したり、php.iniob_implicit_flush()
で設定output_buffering = Off
したりしても役に立ちません。ブラウザでのバッファリングがこれにつながる可能性があります。他に試してみるべきことはありますか?