Class: Terminus::Connector::SocketHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/terminus/connector/socket_handler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server, env) ⇒ SocketHandler

Returns a new instance of SocketHandler.



30
31
32
33
34
35
# File 'lib/terminus/connector/socket_handler.rb', line 30

def initialize(server, env)
  @server   = server
  @env      = env
  @parser   = Faye::WebSocket.parser(env).new(self)
  @messages = []
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



28
29
30
# File 'lib/terminus/connector/socket_handler.rb', line 28

def env
  @env
end

Instance Method Details

#<<(data) ⇒ Object



45
46
47
# File 'lib/terminus/connector/socket_handler.rb', line 45

def <<(data)
  @parser.parse(data)
end

#close(*args) ⇒ Object



65
66
67
# File 'lib/terminus/connector/socket_handler.rb', line 65

def close(*args)
  @server.reset
end

#encode(message) ⇒ Object



49
50
51
# File 'lib/terminus/connector/socket_handler.rb', line 49

def encode(message)
  @parser.frame(Faye::WebSocket.encode(message))
end

#handshake_responseObject



41
42
43
# File 'lib/terminus/connector/socket_handler.rb', line 41

def handshake_response
  @parser.handshake_response
end

#message?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/terminus/connector/socket_handler.rb', line 57

def message?
  @messages.any?
end

#next_messageObject



61
62
63
# File 'lib/terminus/connector/socket_handler.rb', line 61

def next_message
  @messages.shift
end

#receive(message) ⇒ Object



53
54
55
# File 'lib/terminus/connector/socket_handler.rb', line 53

def receive(message)
  @messages << message
end

#urlObject



37
38
39
# File 'lib/terminus/connector/socket_handler.rb', line 37

def url
  "ws://#{env['HTTP_HOST']}/"
end