2

私は faye と private pub をプッシュ サーバーとして使用しています。ユーザーがチャンネルを購読するときに、ユーザーのステータスをオンラインに更新する必要があります。

private_pub gem を fork し、いくつかのコードを変更しました。アプリケーションは user_id を送信しますが、サブスクリプション イベントが gem で発生するため、ユーザーを見つけてステータスを更新する方法がわかりません。

module PrivatePub
  # This class is an extension for the Faye::RackAdapter.
  # It is used inside of PrivatePub.faye_app.
  class FayeExtension

    def incoming(message, callback)
      p "user_id = #{message['ext']['user_id']}"
      if message["channel"] == "/meta/subscribe"
        authenticate_subscribe(message)
        # user = User.find(message['ext']['user_id'])
        # user.status = 'online'
        # user.save
      elsif message["channel"] !~ %r{^/meta/}
        authenticate_publish(message)
      end
      callback.call(message)
    end
  end
end

user_id は取得できますが、gem で User モデルを使用できません。それを行う最良の方法はどれですか?

4

1 に答える 1

1

private_pub.rb に環境を追加してみてください。たとえば。

require File.expand_path("../config/environment", __FILE__)
于 2013-11-22T10:49:13.323 に答える