有没有办法断开控制台消息与 Hyperstack 消息队列的连接?

Is there a way to disconnect console messaging from Hyperstack message queue?

在 Hyperstack 中,每个状态变化都通过 websocket 机制进入消息队列,以通知每个应用程序客户端 model/app 状态变化。因此,如果您从我的浏览器会话更新模型,当时连接的其他所有人都可以在他们的会话中看到它(如果有必要的权限)。

这甚至可以通过控制台完成 'sessions'。您从 Rails 控制台更改模型,更改会自动传播到所有连接的 Web 客户端。

为此,Web 应用程序部分必须可以运行(即 rails 服务器,必须启动并且 运行)。

问题是在两种情况下您可能不希望控制台更新传播到客户端:

  1. 当 rails 服务器因任何原因无法运行并且您想通过它的控制台与应用程序交互时(直到 rails 服务器再次启动)

  2. 您想通过控制台或 rake 任务执行批量更新,并且不希望让客户了解情况的开销。

有没有办法从控制台快速关闭消息传递或为此目的使用某种切换方法?

如果 rails 服务器未启动,它将不会尝试发送消息(但请参阅末尾的注释)

但是您想要 运行 在服务器启动时执行 rake 任务的情况很有趣。我不认为有任何已发布的方法可以关闭 "remote process -> server" 推送,但此补丁将完成相同的操作:

module Hyperstack 
  def self.send_to_server(*args) 
    # drop the message on the floor
  end
end

只需将其粘贴到抽取任务中即可。

关于服务器 "not being up" 一种不起作用的情况是服务器实际上 "up" 但根本不响应。有关详细信息,请参阅 https://github.com/hyperstack-org/hyperstack/issues/144。如果您正在尝试调试服务器问题,那么在解决该问题之前,上面的相同补丁将有所帮助。