onConnect

Description:

callback Worker::$onConnect

Cette fonction de rappel est déclenchée lorsqu'un client établit une connexion avec Workerman (une fois le processus de handshake TCP terminé). Chaque connexion ne déclenche la fonction de rappel onConnect qu'une seule fois.

Remarque : L'événement onConnect représente uniquement le fait que le client a terminé le handshake TCP avec Workerman. À ce stade, le client n'a pas encore envoyé de données ; par conséquent, en dehors de l'obtention de l'IP distante à l'aide de $connection->getRemoteIp(), il n'y a pas d'autres données ou informations pour identifier le client. Ainsi, il n'est pas possible de confirmer qui est l'autre partie dans l'événement onConnect. Pour connaître l'identité de l'autre partie, le client doit envoyer des données d'authentification, telles qu'un token ou un nom d'utilisateur et un mot de passe, afin de procéder à l'authentification dans le rappel onMessage.

Étant donné que UDP est sans connexion, la fonction de rappel onConnect ne sera pas déclenchée lors de l'utilisation d'UDP, et la fonction de rappel onClose ne sera pas non plus déclenchée.

Paramètres de la fonction de rappel

$connection

Objet de connexion, c'est-à-dire une instance de TcpConnection, qui est utilisée pour manipuler la connexion cliente, comme envoyer des données, fermer la connexion, etc.

Exemple

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";
};
// Lancer le worker
Worker::runAll();

Conseil : En plus d'utiliser une fonction anonyme comme rappel, vous pouvez également vous référer ici pour utiliser d'autres écritures de rappel.