onConnect
說明:
callback Worker::$onConnect
當客戶端與 Workerman 建立連接時(TCP 三次握手完成後)觸發的回調函數。每個連接只會觸發一次onConnect
回調。
注意:onConnect 事件僅僅代表客戶端與 Workerman 完成了 TCP 三次握手,這時客戶端還沒有發來任何數據,此時除了通過$connection->getRemoteIp()
獲得對方 IP,沒有其他可以鑑別客戶端的數據或者信息,所以在 onConnect 事件裡無法確認對方是誰。要想知道對方是誰,需要客戶端發送鑑權數據,例如某個 token 或者用戶名密碼之類,在 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 "新的連接來自 IP " . $connection->getRemoteIp() . "\n";
};
// 運行 worker
Worker::runAll();
提示:除了使用匿名函數作為回調,還可以參考這裡使用其他回調寫法。