private_pub
private_pub copied to clipboard
publishing from monitor
i need to be able publishing from inside monitor
private_pub.ru
server.bind :subscribe do |client_id, channel|
if /\/chat\/\d+\/user\//.match(channel)
m = /\/chat\/(?<chat_id>\d+)\/user\/(?<user_id>\d+)/.match(channel)
user_id = m[:user_id]
chat_id = m[:chat_id]
end
unless redis.smembers('users_of_'+chat_id.to_s).include?(user_id)
redis.sadd('users_of_'+chat_id.to_s, user_id)
server.get_client.publish '/chat/1', 'test'
end
logger.info('SUBSCRIBE: '+client_id+' ('+user_id.to_s+'), '+channel)
end
server.get_client.publish '/chat/1', 'test' causes an error:
2012-04-27 14:08:17 [ERROR] [Faye::RackAdapter] undefined method `[]' for nil:NilClass
Backtrace:
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/private_pub-1.0.1/lib/private_pub/faye_extension.rb:32:in `authenticate_publish'
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/private_pub-1.0.1/lib/private_pub/faye_extension.rb:11:in `incoming'
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/faye-0.8.2/lib/faye/protocol/extensible.rb:33:in `block in pipe_through_extensions'
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/faye-0.8.2/lib/faye/protocol/extensible.rb:38:in `call'
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/faye-0.8.2/lib/faye/protocol/extensible.rb:38:in `pipe_through_extensions'
/home/nir0/.rvm/gems/ruby-1.9.3-p125@tyu_development/gems/faye-0.8.2/lib/faye/protocol/server.rb:62:in `block in process'
do i need to pass some sort of auth key here?