gpt4 book ai didi

php - 取消绑定(bind)过去 Ratchet websocket 服务器使用的端口

转载 作者:行者123 更新时间:2023-12-04 16:14:24 25 4
gpt4 key购买 nike

我有一个服务器脚本正在运行,我使用 Ctrl+Z 提前关闭了它。当我再次尝试运行它时,它告诉我端口 1001 已在使用中。在实时环境中,始终存在脚本崩溃或其他可能触发脚本提前结束的风险。如何在连接到它之前自动解除绑定(bind)这个端口?我将使用一个我知道其他任何人都不会使用的端口,因此自动解除绑定(bind)是安全的。

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

    $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 服务器的每条消息都有一个“操作”。然后,开关将为每个 Action 做一些事情。创建一个无法猜测的随机 Action 。在此开关中使用 die(); .这将终止脚本并取消绑定(bind)端口,因此您无需在服务器需要重新启动时手动查找 PID 和终止它。

这可用于制作快速重启 .sh 脚本。使用 php 进行 websocket 调用以终止服务器并从 bash 脚本调用 if,然后调用 php server.php 就可以了。

关于php - 取消绑定(bind)过去 Ratchet websocket 服务器使用的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com