使用AsyncTcpConnection连接远程wss服务器,功能已经调试正常,但在
$conn->connect();
这一行上,耗时在14秒左右。文档说该方案应该立即返回,不知道我哪里没做对。
初始化、设置回调事件等略,最后发起连接:
echo "发起连接,开始于", date("Y-m-d H:i:s") ,PHP_EOL;
$conn->connect();
echo "连接成功,成功于", date("Y-m-d H:i:s"), PHP_EOL;
这是输出截图:
测试了多次,时间稳定在14秒
按照文档使用 ws:// 开头的地址初始化了AsyncTcpConnection;
设置了 $conn->transport = 'ssl';
在 onWebSocketConnect 事件中发送消息;
在 onMessage 事件中处理数据;
最后用 connect() 发起连接。
一切都正常,唯一的问题就是 connect() 耗时太长。
win10 wsl ubuntu 20.04
apt-get 安装的 php7.4.3
Workerman version:4.1.9
相关代码在 webman 的自定义进程中运行。
猜测域名解析太慢了,执行
看下域名解析要多久
确实是这个问题,一针见血,厉害佩服!