gpt4 book ai didi

sockets - Ratchet socket 查询

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

  • 我正在使用 Ratchet socket 。我已经建立了一个新的服务器连接,我想停止服务器运行。在这种情况下,我有 IP(主机名)和端口,那么我该如何阻止呢?
  • 是否可以建立永无止境的服务器连接?
  • 当我建立服务器连接时,第一天从 DB 输出的数据是完美的,但是在第二天,错误生成为“连接被外部主机关闭”。但是我仍然可以连接到该端口。

  • 代码
    <?php 
    use Ratchet\Server\IoServer;
    use MyApp\Chat;
    use React\EventLoop\Factory;
    use React\ZMQ\Context;
    require dirname(__DIR__) . '/vendor/autoload.php';
    require dirname(__DIR__) . '/src/MyApp/Chat.php';

    $server = IoServer::factory(
    new Chat(),
    6666
    );

    $server->run();

    ?>

    最佳答案

    1.

    I am using Ratchet Socket. I have established a new server connection and I want to stop server from running. In this scenario I have IP(Hostname) and port with me, So how can I stop that?



    我假设您当前通过在终端窗口或屏幕中将其作为 php 脚本运行来运行 Ratchet 服务器。
    例如: php push-server.php
    一旦停止运行脚本,您的服务器就会停止。

    2.

    Is it possible to make a server connection that never ends?



    是的,如果您的 php 脚本停止从终端运行,您必须手动重新启动它。最好使用 Ratchet 推荐的诸如 Supervisor(过程控制系统)之类的程序。

    查看此链接了解更多信息 http://supervisord.org/installing.html

    supervisord 服务将监视您的 php 脚本,并在崩溃时自动重新启动它,这适用于生产环境。

    3.

    When I make a server connection, first day the data output is perfect from DB, But on second day, the error is generated as "Connection is closed by foreign host". But still I can connect to that port.



    这很常见,我也注意到了。它通常发生在服务器负载过重或超时时。您的 JavaScript 应检查此消息并在看到此消息时重新启动新连接。您也可以让它在随机计时器后重试。

    编辑

    Ratchet\Server\IoServer 的 __construct 方法也需要 3 个婴儿车,其中第三个是可选的。第一个和第二个需要是 MessageComponentInterface 和 ServerInterface 的对象。
    public function __construct(MessageComponentInterface $app, ServerInterface $socket, LoopInterface $loop = null) {

    实例化 IoServer 的方式似乎不正确。

    关于sockets - Ratchet socket 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620041/

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