PHP Warning: stream_socket_client(): unable to connect to tcp://127.0.0.1:8282 (Cannot assign requested address) in /data/hsol_websocket/vendor/workerman/workerman/Connection/AsyncTcpConnection.php on line 173
Warning: stream_socket_client(): unable to connect to tcp://127.0.0.1:8282 (Cannot assign requested address) in /data/hsol_websocket/vendor/workerman/workerman/Connection/AsyncTcpConnection.php on line 173
发起了多少连接?
20000
服务器发起一个连接会占用一个本地端口,本地端口默认配置为一般2-3w个(更改内核net.ipv4.ip_local_port_range后可以达到6W左右),如果本地端口都占用完了就无法连接了,会报Cannot assign requested address。
也就是说单个服务器默认内核配置向同一台服务器最多能发起大概2-3W个连接,甚至可能更少。
另外连接断开后连接变成TIME_WAIT状态,仍然会占用对应本地端口一段时间,也就是短时间内发起大量(超过2-3w)短连接也会报Cannot assign requested address,如果是这种情况可以通过设置内核快速回收TIME_WAIT来解决,参考workemran手册 http://doc.workerman.net/315302 部分。
但是无论如何配置内核,一台服务器向另外一台服务器维持的连接数不会超过6W。
好的,谢谢大佬,如果我通过 http去连接ws会有这样的问题么?
连不上