
SwooleServer::sendMessage 함수는 클라이언트 ID를 필요로 하며, 클라이언트 ID는 클라이언트가 서버에 연결했을 때 자동으로 생성되는 ID입니다.
클라이언트 ID는 클라이언트가 연결을 종료하면 삭제되지 않습니다. 대신, 클라이언트 ID가 사용되지 않을 때는 자동으로 삭제됩니다.
클라이언트 ID가 여러 개인 경우, sendMessage 함수는 첫 번째 클라이언트 ID로 메시지를 전송합니다.
클라이언트 ID를 얻는 방법은 다음과 같습니다.
1. onConnect 이벤트 핸들러에서 클라이언트 ID를 얻을 수 있습니다. onConnect 이벤트 핸들러는 클라이언트가 서버에 연결했을 때 호출됩니다.
2. getClientId 메서드를 사용할 수 있습니다. getClientId 메서드는 클라이언트 ID를 반환합니다.
sendMessage 함수를 사용하여 클라이언트로 메시지를 전송하는 방법은 다음과 같습니다.
1. 클라이언트 ID를 얻은 후 sendMessage 함수를 호출합니다.
2. sendMessage 함수에 클라이언트 ID와 메시지를 전달합니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
use SwooleHttpRequest;
use SwooleHttpResponse;
class MyServer extends SwooleHttpServer
{
public function onConnect($server, $fd, $fromId)
{
// 클라이언트 ID를 얻습니다.
$clientId = $server->getClientId($fd);
echo "클라이언트 ID: $clientIdn";
}
public function onMessage($server, $fd, $fromId, $data)
{
// 클라이언트 ID를 얻은 후 sendMessage 함수를 호출합니다.
$clientId = $server->getClientId($fd);
$server->sendMessage($clientId, "메시지입니다.");
}
}
위 예제 코드는 onConnect 이벤트 핸들러에서 클라이언트 ID를 얻은 후, onMessage 이벤트 핸들러에서 sendMessage 함수를 호출합니다.
2025-07-29 20:26