取消绑定过去 Ratchet websocket 服务器使用的端口
Unbind port used from past Ratchet websocket server
我有一个服务器脚本 运行ning,我使用 Ctrl+Z 过早地关闭了它。当我再次尝试 运行 时,它告诉我端口 1001 已被使用。在实时环境中,始终存在脚本崩溃或其他原因可能触发脚本提前结束的风险。如何在连接之前自动解绑这个端口?我将使用一个我不知道其他任何东西都不会使用的端口,因此自动解除绑定是安全的。
目前我的服务器脚本是基本的。
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
1001
);
$server->run();
我按照此处 http://socketo.me/docs/hello-world 找到的指南进行操作。一切都按预期进行,我现在只是被这个问题困住了。
我在 Centos 7 上 运行ning PHP 5.4。
我找不到通过命令行执行此操作的任何方法。我能看到的唯一解决方案,如果有人发现是通过向 websocket 发送消息来终止脚本,这可能会很麻烦。每条发送到 websocket 服务器的消息都有一个 "action"。然后开关将为每个动作做一些事情。创建一个无法猜测的随机动作。在此开关中使用 die();
。这将终止脚本并取消绑定端口,因此您无需在服务器需要重新启动时去查找 PID 并手动终止它。
这可用于制作快速重启.sh 脚本。使用 php 进行 websocket 调用以终止服务器并从 bash 脚本调用 if,然后调用 php server.php 然后离开。
我有一个服务器脚本 运行ning,我使用 Ctrl+Z 过早地关闭了它。当我再次尝试 运行 时,它告诉我端口 1001 已被使用。在实时环境中,始终存在脚本崩溃或其他原因可能触发脚本提前结束的风险。如何在连接之前自动解绑这个端口?我将使用一个我不知道其他任何东西都不会使用的端口,因此自动解除绑定是安全的。
目前我的服务器脚本是基本的。
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
1001
);
$server->run();
我按照此处 http://socketo.me/docs/hello-world 找到的指南进行操作。一切都按预期进行,我现在只是被这个问题困住了。
我在 Centos 7 上 运行ning PHP 5.4。
我找不到通过命令行执行此操作的任何方法。我能看到的唯一解决方案,如果有人发现是通过向 websocket 发送消息来终止脚本,这可能会很麻烦。每条发送到 websocket 服务器的消息都有一个 "action"。然后开关将为每个动作做一些事情。创建一个无法猜测的随机动作。在此开关中使用 die();
。这将终止脚本并取消绑定端口,因此您无需在服务器需要重新启动时去查找 PID 并手动终止它。
这可用于制作快速重启.sh 脚本。使用 php 进行 websocket 调用以终止服务器并从 bash 脚本调用 if,然后调用 php server.php 然后离开。