onConnect
설명:
callback Worker::$onConnect
클라이언트가 Workerman과 연결을 맺을 때(TCP 3-way handshake가 완료된 후) 트리거되는 콜백 함수입니다. 각 연결은 한 번만 onConnect 콜백을 트리거합니다.
주의: onConnect 이벤트는 단순히 클라이언트와 Workerman이 TCP 3-way handshake를 완료했음을 나타냅니다. 이 시점에서는 클라이언트가 어떤 데이터도 전송하지 않았으며, $connection->getRemoteIp()를 통해 상대방의 IP를 얻는 것 외에는 클라이언트를 식별할 수 있는 데이터나 정보가 없습니다. 따라서 onConnect 이벤트에서는 상대방이 누구인지 확인할 수 없습니다. 상대방이 누구인지 알고 싶다면 클라이언트가 인증 데이터를 전송해야 하며, 예를 들어 어떤 토큰이나 사용자 이름과 비밀번호와 같은 것을 onMessage 콜백에서 인증 처리합니다.
UDP는 연결 지향적이지 않기 때문에, UDP를 사용할 경우 onConnect 콜백이 트리거되지 않으며 onClose 콜백도 트리거되지 않습니다.
콜백 함수의 매개변수
$connection
연결 객체로, TcpConnection 인스턴스이며, 클라이언트 연결 작업에 사용됩니다. 예를 들어 데이터 전송, 연결 닫기 등이 있습니다.
예제
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onConnect = function(TcpConnection $connection)
{
echo "new connection from ip " . $connection->getRemoteIp() . "\n";
};
// 워커 실행
Worker::runAll();
팁: 익명 함수 외에도 여기를 참고하여 다른 콜백 방식을 사용할 수 있습니다.