提问者:小点点

通过套接字发送消息到特定的客户端与PHPSocket.IO


我需要向连接到套接字服务器的客户端发送消息,但我需要它只发送给一个人,而不是这样的广播。我已经读过函数to()的socket.IO,但我已经用几种方式实现了它,我没有得到它,我把它发送给所有人。这是我的代码

    ...
        $socket->on('new message', function($message) use($socket)
        {
            $socket->emit("new message", array(
                    "username" => $socket->username,
                    "action" => "me",
                    "message" => [ "from" => $socket->username['WP_USER_DATA']['guid'], "type" => "user", "time" => date('H:i'), "message" =>  $message ]
                )
            );
            //I NEED HELP HERE, PLEASE
            $socket->broadcast->emit("new message", array(
                "username" => $socket->username,
                "action" => "chat",
                "message" =>  [ "from" => $socket->username['WP_USER_DATA']['guid'], "type" => "", "time" => date('H:i'), "message" =>  $message ]
            ));
        });
    ...

共1个答案

匿名用户

来自Socket.IO备忘单:

// sending to individual socketid (private message)
io.to(`${socketId}`).emit('hey', 'I just met you');

所以对你来说,这就像:

//I NEED HELP HERE, PLEASE
io->to($socketId)->emit("new message", array(
    "username" => $socket->username,
    "action" => "chat",
    "message" =>  [ "from" => $socket->username['WP_USER_DATA']['guid'], "type" => "", "time" => date('H:i'), "message" =>  $message ]
));

注意:您需要存储(在数组中)id($socket-