从过去的棘轮websocket服务器使用的解除绑定端口

问题描述:

我有一个服务器脚本正在运行,并且我使用提前关闭了它。Ctrl + Z。当我尝试再次运行它时,它告诉我端口1001已被使用。在现场环境中,脚本可能会崩溃或者其他可能导致脚本提前结束的风险总是存在。如何在连接之前自动取消绑定此端口?我将使用一个我不知道别的将会使用的端口,因此它可以安全地自动解除绑定。从过去的棘轮websocket服务器使用的解除绑定端口

目前我的服务器脚本是基本的。

$server = IoServer::factory(
    new HttpServer(
     new WsServer(
      new Chat() 
     ) 
    ), 
    1001 
); 

$server->run(); 

我跟着在这里找到的指南http://socketo.me/docs/hello-world。一切都按预期工作,我现在只是坚持这个问题。

我在CentOS 7

运行PHP 5.4我无法找到任何方式通过命令行来做到这一点。只有解决方案,我可以看到,如果有人发现可能会麻烦通过发送消息到websocket来杀死脚本。每个给websocket服务器的消息都有一个“动作”。交换机会为每个动作做些事情。创建一个无法猜测的随机动作。在此开关内使用die();。这将杀死脚本并解除绑定端口,因此您无需查找PID并在服务器重新启动时手动查找。

这可以用来快速重启.sh脚本。使用PHP做一个websocket调用来杀死服务器,如果从一个bash脚本调用,然后调用php server.php并离开你去。