Rails websocket 连接ID存储

Posted

技术标签:

【中文标题】Rails websocket 连接ID存储【英文标题】:Rails websocket connection ID storage 【发布时间】:2018-07-19 12:56:25 【问题描述】:

我搜索了Web socket rails gem,但无法确定频道的连接 ID 是存储在 redis 服务器上还是存储在 rails 内存中。任何人都知道它的存储位置。

基本上,我们希望通过添加更多实例来扩展我们的服务器,这就是我们希望确保用户的连接 ID 或 Channels 和连接 ID 的映射存储在 redis 上而不是 rails 应用程序服务器上的原因。

【问题讨论】:

【参考方案1】:

我没有使用过那个 gem,但据我在他们的代码上看到的:

https://github.com/websocket-rails/websocket-rails/blob/master/lib/websocket_rails/channel.rb

频道的标识符是@name,可以通过Rails 访问。不确定这是否有帮助。也许如果你举例说明你想用频道 ID 做什么,有人可以提供帮助

【讨论】:

基本上我们希望通过添加更多实例来扩展我们的服务器,这就是我们希望确保用户的连接 ID 存储在 redis 上而不是 rails 应用程序服务器上的原因。

以上是关于Rails websocket 连接ID存储的主要内容,如果未能解决你的问题,请参考以下文章

websocket-rails 在生产中没有连接

Websockets 和 Rails

Android 的 Web 套接字连接

Rails5 + ActionCable:与'ws:// {hostname} / cable'的WebSocket连接失败:WebSocket在建立连接之前关闭

为啥 websocket-rails 需要作为独立服务器启动以支持基于非事件机的 Web 服务器?

Rails + ActionCable + Passenger + AWS Elasticache (Redis):如何修复“WebSocket 在建立连接之前关闭。”在生产?