Rails针对特定用户的ActionCable实时通知

时间:2017-03-29 14:14:54

标签: ruby-on-rails actioncable

我正在开博客,我的想法是,只要有人在我的某个帖子(例如Facebook或类似的社交媒体)上发表评论,就会立即收到实时通知。我尝试使用ActionCable功能做到这一点,一切看起来都有效,但通知不仅由我看到,而且现在都在博客上的所有人看到。

我还试图从官方文档中添加这部分代码来制作私人频道:

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      self.current_user = find_verfied_user
    end

    protected

    def find_verfied_user
      if current_user = env['warden'].user
        current_user
      else
        reject_unauthorized_connection
      end
    end
  end
end

虽然有效,但是除了管理员以外的其他人正在阅读博客时,服务器每隔20秒就会轮询并拒绝连接,这对服务器来说是一个额外的负载。

我想知道是否有某种方法可以告诉ActionCable仅向特定用户广播通知(在这种情况下以管理员身份向我广播)而不被其他人看到?或者使用像Faye这样的其他功能有更好的方法吗?提前谢谢。

0 个答案:

没有答案