私は 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 モデルを使用できません。それを行う最良の方法はどれですか?