您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman回调onConnect获取远端ip
发布时间:2021-12-02 22:46:51编辑:雪饮阅读()
onConnect
说明:
callback Worker::$onConnect
当客户端与Workerman建立连接时(TCP三次握手完成后)触发的回调函数。每个连接只会触发一次onConnect回调。
注意:
onConnect事件仅仅代表客户端与Workerman完成了TCP三次握手。
这时客户端还没有发来任何数据,此时除了通过$connection->getRemoteIp()获得对方ip,没有其他可以鉴别客户端的数据或者信息,所以在onConnect事件里无法确认对方是谁。
要想知道对方是谁,需要客户端发送鉴权数据,例如某个token或者用户名密码之类,在onMessage回调里做鉴权。
由于udp是无连接的,所以当使用udp时不会触发onConnect回调,也不会触发onClose回调。
实例:
<?php
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
Worker::runAll();
?>
实例运行并有websocket客户端连接时:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:8484 1 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
new connection from ip 58.60.155.112
关键字词:workerman,onConnect,回调,获取,远端ip
相关文章
- workerman回调onMessage
- workerman回调onWorkerReload
- workerman回调onWorkerStart
- workerman接口listen接合reusePort实现端口复用多实例
- workerman接口runAll运行多个不同woker实例(不同协议)
- workerman接口stopAll及多线程请求测试
- workerman利用Timer库的persistent属性实现仅定时执行
- workerman利用daemonize属性实现代码层控制进程启动方
- workerman利用reloadable属性实现新增业务代码载入并
- workerman属性stdoutFile(输出重定向)及daemonize实现脚