我使用phpws(https://github.com/Devristo/phpws)来实现WebSocket。
我发现了那个 客户端断开连接后,仍有一些TCP端口正在使用,其中 TIME_WAIT 状态, 过了一段时间,这些端口将被释放。
我已经读过一个帖子,说明我可以使用socket_set_option($socket, SOL_SOCKET, SO_LINGER, array('l_onoff' => 1, 'l_linger' => 1))
来阻止 TIME_WAIT 状态并立即关闭这些端口,
但phpws使用stream_socket_server()
,它不接受该选项。
是否有人知道如何为' stream_socket' ?
答案 0 :(得分:0)
对于有同样问题的另一个人..这是解决方案..
$linger = array ('l_linger' => 0, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);
socket_close($socket);
你可以看到它正在使用(TCP条目的tw值): 看-n1 cat / proc / net / sockstat 要么 netstat -n | grep TIME_WAIT | wc -l </ p>