关闭旧的php websocket

时间:2012-12-18 10:37:37

标签: php websocket phpwebsocket

我正在使用PHP-Websockets创建一个简单的聊天服务器。当我第一次运行在我的服务器上创建websocket的php脚本时,我的一切工作正常。如果脚本由于某种原因停止并且我尝试重新运行它,则会收到一条错误消息,指出该脚本无法绑定套接字,因为它已经存在。

如何创建一个脚本来查找这个旧套接字(假设我知道它正在运行哪个端口)并关闭它以便我可以建立新的连接?

2 个答案:

答案 0 :(得分:2)

如果你有shell访问权限,我会使用以下命令来推断使用该套接字(端口)的进程的PID。

netstat --tcp --listening --program

然后杀死那个过程。

kill %pid%

为了防止这种情况发生,我会仔细检查你的脚本是否正常终止并先关闭套接字。

答案 1 :(得分:0)

在 Ubuntu(linux) 服务器上测试:

我是这样解决的: 使用 exec() 函数可以轻松终止正在运行的网络套接字: 让一个名为 socketControl.php 的 php 文件和代码:

exec('kill $(pidof php)');

这应该会取消当前在服务器中运行的 php websocket。