require ‘pubnub’
namespace :examples do
desc "PubNub Subscribe (Receive Messages)" task :subscribe, :channel do |task, args| pn = Pubnub.new(:publish_key => "demo", :subscribe_key => "demo") # if my_callback returns false, return immediately, otherwise, keep going... my_callback = lambda{ |message| puts(message.inspect); return false; } pn.subscribe(:channel => args.channel, :callback => my_callback) end task :re_subscribe, :channel do |task, args| pn = Pubnub.new(:publish_key => "demo", :subscribe_key => "demo") time_callback = lambda{ |timetoken| @timetoken = timetoken } my_callback = lambda{ |message| puts(message.inspect); } pn.time(:callback => time_callback) pn.subscribe(:channel => args.channel, :callback => my_callback, :override_timetoken => @timetoken) end desc "Realtime see who channel events, such as joins, leaves, and occupancy" task :presence, :channel do |task, args| pn = Pubnub.new(:publish_key => "demo", :subscribe_key => "demo") # if my_callback returns false, return immediately, otherwise, keep going... my_callback = lambda{ |message| puts(message.inspect); return false; } pn.presence(:channel => args.channel, :callback => my_callback) end
end