AsyncTcpConnection连远程 wss 服务器,connect() 要14秒

tfcdznd

问题描述

使用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() 耗时太长。

操作系统环境及workerman/webman等具体版本

win10 wsl ubuntu 20.04
apt-get 安装的 php7.4.3
Workerman version:4.1.9

相关代码在 webman 的自定义进程中运行。

433 1 0
1个回答

latin

猜测域名解析太慢了,执行

telnet 域名.com 443

看下域名解析要多久

  • tfcdznd 2024-05-26

    确实是这个问题,一针见血,厉害佩服!

×
🔝