라이브러리

[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 메커니즘을 사용하면 연결 끊김 감지와 서버 로드 관리를 용이하게 할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 95 페이지

검색

게시물 검색