
SwooleWebSocketServer::push 메서드는 비동기적으로 클라이언트에 메시지를 보냅니다. 따라서 메시지를 받는 순서가 보장되지 않습니다.
다중 클라이언트가 동시에 메시지를 받을 수 있도록 하기 위해서는 다음 방법을 사용할 수 있습니다.
1. 메시지를 받은 후에 클라이언트의 ID를 저장하고, 클라이언트가 메시지를 받은 순서를 저장합니다.
2. 클라이언트가 메시지를 받은 후에 처리를 하기 위해서는 WebSocket의 onMessage 이벤트를 사용합니다. onMessage 이벤트는 클라이언트가 메시지를 받은 후에 발생합니다.
3. 클라이언트가 메시지를 받은 후에 처리를 하기 위해서는 WebSocket의 onMessage 이벤트의 메시지를 사용합니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
use SwooleWebSocketServer;
$server = new Server('0.0.0.0', 9501);
$server->set([
'worker_num' => 4,
]);
$server->on('open', function ($server, $req) {
echo "Client: {$req->fd} has connectedn";
});
$server->on('message', function ($server, $frame) {
echo "Client: {$frame->fd} received message: {$frame->data}n";
// 메시지를 받은 후에 처리를 하기 위해서는 onMessage 이벤트를 사용합니다.
$server->push($frame->fd, "Hello, Client!");
});
$server->on('close', function ($server, $fd) {
echo "Client: {$fd} has closedn";
});
$server->start();
위의 예제 코드에서, 클라이언트가 메시지를 받은 후에 처리를 하기 위해서는 onMessage 이벤트를 사용합니다. onMessage 이벤트는 클라이언트가 메시지를 받은 후에 발생합니다.
클라이언트가 메시지를 받은 후에 처리를 하기 위해서는 WebSocket의 onMessage 이벤트의 메시지를 사용합니다.
제가 잘못 이해하고 있는 부분은 없으며, 위의 예제 코드를 참고하여 이해를 하시길 바랍니다.
2025-08-07 12:45