onConnect
Giải thích:
callback Worker::$onConnect
Hàm callback được kích hoạt khi khách hàng thiết lập kết nối với Workerman (sau khi hoàn tất ba bước bắt tay TCP). Mỗi kết nối chỉ kích hoạt một lần callback onConnect.
Lưu ý: Sự kiện onConnect chỉ đại diện cho việc khách hàng đã hoàn tất ba bước bắt tay TCP với Workerman, lúc này khách hàng vẫn chưa gửi bất kỳ dữ liệu nào. Trong giai đoạn này, ngoài việc sử dụng $connection->getRemoteIp() để lấy địa chỉ IP của đối phương, không có dữ liệu hoặc thông tin nào khác để xác minh danh tính của khách hàng. Để biết ai là đối phương, khách hàng cần gửi dữ liệu xác thực, chẳng hạn như một token hoặc tên người dùng cùng mật khẩu, và thực hiện xác thực trong callback onMessage.
Do UDP là giao thức không kết nối, nên khi sử dụng UDP sẽ không kích hoạt callback onConnect, và cũng sẽ không kích hoạt callback onClose.
Tham số của hàm callback
$connection
Đối tượng kết nối, tức là instance TcpConnection, được sử dụng để thao tác với kết nối của khách hàng, như gửi dữ liệu, đóng kết nối v.v.
Ví dụ
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";
};
// Chạy worker
Worker::runAll();
Lưu ý: Ngoài việc sử dụng hàm vô danh làm callback, bạn cũng có thể tham khảo tại đây để sử dụng các cách viết callback khác.