Class: Terminus::Connector::SocketHandler
- Inherits:
-
Object
- Object
- Terminus::Connector::SocketHandler
- Defined in:
- lib/terminus/connector/socket_handler.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
Instance Method Summary collapse
- #<<(data) ⇒ Object
- #close(*args) ⇒ Object
- #encode(message) ⇒ Object
- #handshake_response ⇒ Object
-
#initialize(server, env) ⇒ SocketHandler
constructor
A new instance of SocketHandler.
- #message? ⇒ Boolean
- #next_message ⇒ Object
- #receive(message) ⇒ Object
- #url ⇒ Object
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
#env ⇒ Object (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() @parser.frame(Faye::WebSocket.encode()) end |
#handshake_response ⇒ Object
41 42 43 |
# File 'lib/terminus/connector/socket_handler.rb', line 41 def handshake_response @parser.handshake_response end |
#message? ⇒ Boolean
57 58 59 |
# File 'lib/terminus/connector/socket_handler.rb', line 57 def @messages.any? end |
#next_message ⇒ Object
61 62 63 |
# File 'lib/terminus/connector/socket_handler.rb', line 61 def @messages.shift end |
#receive(message) ⇒ Object
53 54 55 |
# File 'lib/terminus/connector/socket_handler.rb', line 53 def receive() @messages << end |
#url ⇒ Object
37 38 39 |
# File 'lib/terminus/connector/socket_handler.rb', line 37 def url "ws://#{env['HTTP_HOST']}/" end |