onConnect

説明:

callback Worker::$onConnect

クライアントがWorkermanと接続を確立したとき(TCPの三者間ハンドシェイクが完了した後)にトリガーされるコールバック関数です。各接続は一度だけonConnectコールバックをトリガーします。

注意:onConnectイベントは、単にクライアントとWorkermanがTCP三者間ハンドシェイクを完了したことを示します。この時点で、クライアントからはまだデータが送信されていません。このため、$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();

ヒント:匿名関数をコールバックとして使用する以外に、こちらを参考にして他のコールバックの書き方も使用できます。