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();
ヒント:匿名関数をコールバックとして使用する以外に、こちらを参考にして他のコールバックの書き方も使用できます。