라이브러리
[PHP] SwooleServer::heartbeat - 서버의 모든 연결을 확인합니다.
SwooleServer::heartbeat
SwooleServer::heartbeat은 SwooleServer의 메소드 중 하나로, 서버와 클라이언트 간의 heartbeat 메커니즘을 제공합니다. heartbeat 메커니즘은 서버와 클라이언트가 정기적으로 서로에게 ping 메시지를 보내서 연결이 유지되는지 확인하는 기능입니다.
사용 이유
heartbeat 메커니즘은 다음의 이유로 사용됩니다.
* 연결 확인: 서버와 클라이언트가 정기적으로 서로에게 ping 메시지를 보내서 연결이 유지되는지 확인할 수 있습니다.
* 연결 끊김 감지: 클라이언트가 연결을 끊었을 때 서버가 즉시 알 수 있습니다.
* 서버 로드 관리: 서버 로드 관리를 위해 heartbeat 메커니즘을 사용할 수 있습니다.
사용 방법
SwooleServer::heartbeat을 사용하려면 다음의 코드를 작성해야 합니다.
#hostingforum.kr
php
use SwooleServer;
$server = new Server('0.0.0.0', 9501);
$server->set([
'heartbeat_idle_time' => 60, // 1분
'heartbeat_interval' => 10, // 10초
'heartbeat_check_timeout' => 3, // 3초
]);
$server->on('start', function (Server $server) {
echo "Server start
";
});
$server->on('heartbeat', function (Server $server, $fd) {
echo "Client $fd heartbeat
";
});
$server->on('heartbeatTimeout', function (Server $server, $fd) {
echo "Client $fd heartbeat timeout
";
});
$server->on('close', function (Server $server, $fd) {
echo "Client $fd close
";
});
$server->start();
예제
위의 코드는 SwooleServer::heartbeat을 사용하는 예제입니다. `heartbeat_idle_time` 옵션은 1분, `heartbeat_interval` 옵션은 10초, `heartbeat_check_timeout` 옵션은 3초로 설정되어 있습니다. `start` 이벤트는 서버가 시작될 때 호출되고, `heartbeat` 이벤트는 클라이언트가 heartbeat 메시지를 보낼 때 호출됩니다. `heartbeatTimeout` 이벤트는 클라이언트가 heartbeat 메시지를 보내지 않을 때 호출되고, `close` 이벤트는 클라이언트가 연결을 끊을 때 호출됩니다.
옵션
SwooleServer::heartbeat에 사용할 수 있는 옵션은 다음과 같습니다.
* `heartbeat_idle_time`: heartbeat 메커니즘을 사용할 때 idle 시간을 설정합니다. 기본값은 0입니다.
* `heartbeat_interval`: heartbeat 메커니즘을 사용할 때 interval 시간을 설정합니다. 기본값은 0입니다.
* `heartbeat_check_timeout`: heartbeat 메커니즘을 사용할 때 check timeout 시간을 설정합니다. 기본값은 0입니다.
결론
SwooleServer::heartbeat은 서버와 클라이언트 간의 heartbeat 메커니즘을 제공합니다. heartbeat 메커니즘은 서버와 클라이언트가 정기적으로 서로에게 ping 메시지를 보내서 연결이 유지되는지 확인할 수 있습니다. heartbeat 메커니즘을 사용하면 연결 끊김 감지와 서버 로드 관리를 용이하게 할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.