Class: VkCozy::UserPolling
- Inherits:
-
Object
- Object
- VkCozy::UserPolling
- Defined in:
- lib/vk_cozy/polling/user_polling.rb
Instance Method Summary collapse
- #get_event(server) ⇒ Object
- #get_server ⇒ Object
-
#initialize(api = nil, user_id = nil, mode = 234, wait = 25, rps_delay = 0, error_handler = nil) ⇒ UserPolling
constructor
A new instance of UserPolling.
- #listen ⇒ Object
Constructor Details
#initialize(api = nil, user_id = nil, mode = 234, wait = 25, rps_delay = 0, error_handler = nil) ⇒ UserPolling
Returns a new instance of UserPolling.
3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/vk_cozy/polling/user_polling.rb', line 3 def initialize(api=nil, user_id=nil, mode=234, wait=25, rps_delay=0, error_handler=nil) @api = api if user_id.nil? @user_id = @api.request('users.get', {})['response'][0]['id'] else @user_id = user_id end @mode = mode @wait = wait @rps_delay = rps_delay @stop = false end |
Instance Method Details
#get_event(server) ⇒ Object
16 17 18 19 20 |
# File 'lib/vk_cozy/polling/user_polling.rb', line 16 def get_event(server) uri = URI.parse('https://%s?act=a_check&key=%s&ts=%s&wait=%s&mode=%s&rps_delay=%s&version=%s' % [server['server'], server['key'], server['ts'], @wait, @mode, @rps_delay, 3]) http_response = Net::HTTP.get(uri) return JSON.parse(http_response) end |
#get_server ⇒ Object
22 23 24 |
# File 'lib/vk_cozy/polling/user_polling.rb', line 22 def get_server return @api.request('messages.getLongPollServer', {})['response'] end |
#listen ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/vk_cozy/polling/user_polling.rb', line 26 def listen server = get_server until @stop do event = get_event(server) if not event['ts'] server = get_server next end server['ts'] = event['ts'] yield event end end |