0

私は、flash/as3で接続しているPHPで作成されたソケットを持っています。その99%は機能していますが、...

$bytes = socket_recv($socket, $buffer, 2048, 0);
if ($bytes == 0) {
    //User disconnects
    $index = array_search($socket, $read_sockets);
    $tehEC = socket_last_error();
    $CID = $read_sockets[$index];
    $DNAME = $DB->db->query("SELECT * FROM chat_online WHERE connectid='$CID'");
    $BROW = $DB->db->fetch_array($DNAME);
    $BNAME = $BROW['user_name'];
    $DB->db->query("DELETE FROM chat_online WHERE connectid='$CID'");
    echo "dc " . $tehEC . "\n";
    send_Message($allclients, $socket, $BNAME . ": /disconnected " . $BNAME); <-- WILL NOT SEND
    unset($read_sockets[$index]);
    send_Message($allclients, $socket, $BNAME . ": /disconnected " . $BNAME); <-- WILL NOT SEND 
    socket_close($socket);
}

そのため、ユーザーが切断したときにイベントを発生させることができましたが、その行が送信されないため、私の生活は非常に困難になります:(助けてください?他のクライアントに送信してユーザーを削除できるようにする必要があります繰り返しになりますが、ソケットサーバーがまだオンラインになっているすべてのクライアントにメッセージを送信して、切断されたユーザーをリストから削除するようにするにはどうすればよいですか。

4

1 に答える 1

0

実際の問題は、文字列を送信するために文字列の最後にchr(0)を追加する必要があることでした。でもご回答ありがとうございます。

于 2012-09-29T21:41:00.200 に答える