telnet 连接使 websocket 服务器停止


telnet connection stalls websocket server

我有一个websocket服务器,偶尔会在传入连接上停滞。我可以通过telnet server.tld 8080连接而不键入任何内容来重现此行为。

当我通过telnet建立连接但没有键入任何内容时,服务器会检测到传入的连接,但stream_socket_accept()呼叫将停止一分钟。正好60秒。每次。

使这种情况变得更糟的是,stream_socket_accept()完全忽略了超时变量AND default_socket_timeout

我该怎么做才能中止失速?

default_socket_timeout被忽略,因为套接字服务器以php-cli运行。所以加载的 php.ini 文件与 php 的 apache 模块版本不同。我不知道这一点。当stream_socket_accept无法正常工作时,可以通过ini_set('default_socket_timeout',$timeInSeconds);强制超时