PHPでソケットを使用して、単純なコマンドラインベースのチャットを作成しています。それは問題なく動作しますが、ほとんど使用できなくなるという1つの主要な問題があります。チャットに複数の人がいて、1人がメッセージを入力し、もう1人がメッセージを送信する場合、メッセージを入力する人は、受信したメッセージを入力内容に追加して受け取ります。とにかくこれの周りにありますか?stdinとstreamselectを使用しています。これがクライアントからの作品です:
$uin = fopen("php://stdin", "r");
while (true) {
$r = array($socket, $uin);
$w = NULL;
$e = NULL;
if (0 < stream_select($r, $w, $e, 0)) {
foreach ($r as $i => $fd) {
if ($fd == $uin) {
$text = (fgets($uin));
fwrite($socket, $text);
} else {
$text = fgets($socket);
print $text;
}
}
}
}
すべての助けに感謝します!ありがとう!