我使用 faye 和私人酒吧作为推送服务器。当他订阅频道时,我需要将用户的状态更新为在线。
我已经分叉了 private_pub gem 并更改了一些代码,我的应用程序发送了 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 中使用用户模型。最好的方法是什么?