【问题标题】:RPCS on Server disappear after idle time of 15-20min服务器上的 RPCS 在 15-20 分钟的空闲时间后消失
【发布时间】:2015-12-05 00:19:24
【问题描述】:

我真的很抱歉我的英语不好。 我用 voryx/ThruwayBundle 为 Symfony 创建了简单的 websocket 游戏。游戏使用在服务器上注册的 RPCS。一切正常,但是当我离开大约 20 分钟时,RPCS 不再可用。而且我必须重新启动 websocket 服务器才能使它们再次可用。

我尝试将我的 RPC 注册为工作人员,我可以看到它们正在运行,但它们仍然不可用 websocket server process status

我用来注册RPC的注解是

/**
 * @Register("games.snake.newplayer",serializerEnableMaxDepthChecks=true, worker="add-snake")
 */

我用命令运行服务器

nohup php app/console thruway:process start &

你可以在http://amusement.cloudapp.net/看到它

如果有帮助,我正在使用在 Microsoft azure 中创建的 Ubuntu 15.10 服务器

我不知道如何在不重新启动 websocket 服务器的情况下使这些 RPC 随时可用。如果 websocket 服务器停止响应,我应该采取一些 cron 操作来重置它们吗?我该怎么做。

编辑#1

RPCS 在我的本地机器上运行良好 Ubuntu 14.04

【问题讨论】:

  • 你在本地运行服务器时是否遇到同样的问题?
  • 是的,看起来 RPCS 工作得很好。这个问题的罪魁祸首在哪里?
  • 我不太确定。我对 Azure 不是很熟悉。我想知道连接是否会在一段时间后关闭。您可以尝试设置一个每分钟“ping”一次服务器的远程客户端吗?
  • 目前不可能。我无法ping通该服务器。但是,即使我打开了 ssh 连接并在没有 nohup rpcs 的情况下启动服务器,一段时间后也会消失。我创建了 rpc 以每 5 秒广播一次活动,并且此 rpc 保持可访问性。对于我不使用的其余部分,我得到 wamp error no procedure。但他们刚刚启动 websocket serwer
  • 活动的 Rpc 保持可访问,直到我停止使用它。然后我也得到 wamp 错误

标签: php symfony websocket rpc thruway


【解决方案1】:

为了防止 rpcs 消失,我创建了 symfony 控制台命令来用一些测试数据 ping 它们。接下来我将此命令注册为每分钟执行一次的 cron 作业。

我找不到问题的根源,但这是避免它的简单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2011-04-30
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    相关资源
    最近更新 更多