Class: Rsift::Socket

Inherits:
Object
  • Object
show all
Defined in:
lib/rsift/socket.rb

Class Method Summary collapse

Class Method Details

.perform(stream_identifier) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rsift/socket.rb', line 7

def self.perform(stream_identifier)
  endpoint = "ws://websocket.datasift.net/"

  EventMachine.run {
    http = EventMachine::HttpRequest.new(
        "#{endpoint}#{stream_identifier}").get(:timeout => 0)

    http.callback do
      puts "Connected to datasift" 
    end
    
    http.errback do
      raise SocketError.new("Datasift threw an error")
    end
    
    http.disconnect do
       raise SocketDisconnect.new("Datasift disconnected me.")
    end

    http.stream { |msg|
      yield msg
    }
  }
end