我的workerman想加入IP白名單功能。請(qǐng)問是要自己在
$worker->onConnect = function ($connection) {
print_r("new ip: " . $connection->getRemoteIp());
};
這里補(bǔ)充業(yè)務(wù)邏輯?
還是workerman本身就提供了設(shè)置?
@https://wenda.workerman.net/people/qq5738912
?
首先你這個(gè)是業(yè)務(wù)邏輯,需要你自己去處理
?
如果單純做IP白名單,可以參考手冊(cè)中onConnect
?
注意:onConnect事件僅僅代表客戶端與Workerman完成了TCP三次握手,這時(shí)客戶端還沒有發(fā)來任何數(shù)據(jù),此時(shí)除了通過$connection->getRemoteIp()獲得對(duì)方ip,沒有其他可以鑒別客戶端的數(shù)據(jù)或者信息,所以在onConnect事件里無法確認(rèn)對(duì)方是誰。要想知道對(duì)方是誰,需要客戶端發(fā)送鑒權(quán)數(shù)據(jù),例如某個(gè)token或者用戶名密碼之類,在http://doc.workerman.net/worker/on-message.html里做鑒權(quán)。
由于udp是無連接的,所以當(dāng)使用udp時(shí)不會(huì)觸發(fā)onConnect回調(diào),也不會(huì)觸發(fā)onClose回調(diào)。
如果還做其他白名單,你需要在onMessage進(jìn)行處理。