关闭

时间:2016-01-05 06:39:38

标签: php sockets

我使用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' ?

1 个答案:

答案 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>

相关问题