Class: DrunkMonkey::Transport::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/drunkmonkey/transport.rb

Direct Known Subclasses

Comet, WebSocket

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Base

Returns a new instance of Base.



51
52
53
54
# File 'lib/drunkmonkey/transport.rb', line 51

def initialize options = {}
  @controller = Celluloid::Actor[options[:controller_name]]
  @messages = []
end

Class Method Details

.parse_params(request) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/drunkmonkey/transport.rb', line 38

def parse_params request
  if request.post?
    input = request.env["rack.input"]
    input.rewind
    parameters = input.read.sub(/\Adata=/,"")
    input.rewind
    params = JSON.parse(parameters)
  else
    params = request.params
  end
end

.resume(request, options = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/drunkmonkey/transport.rb', line 26

def resume request, options = {}
  @sessions ||= {}

  params = parse_params request
  id = request.post? ? params["socket"] : params["id"]

  session = @sessions[id]

  return session if session
  @sessions[id] = new options
end

Instance Method Details

#portal(message) ⇒ Object



56
57
58
59
# File 'lib/drunkmonkey/transport.rb', line 56

def portal message
  @i ||= 0
  {type:"message", data:message, id:(@i+=1),reply:false}.to_json
end