Class: WebSocket::Driver
- Inherits:
-
Object
show all
- Includes:
- EventEmitter
- Defined in:
- lib/websocket/driver.rb,
lib/websocket/driver/hybi.rb,
lib/websocket/driver/proxy.rb,
lib/websocket/driver/client.rb,
lib/websocket/driver/server.rb,
lib/websocket/driver/draft75.rb,
lib/websocket/driver/draft76.rb,
lib/websocket/driver/headers.rb,
lib/websocket/driver/hybi/frame.rb,
lib/websocket/driver/hybi/message.rb,
lib/websocket/driver/event_emitter.rb,
lib/websocket/driver/stream_reader.rb
Defined Under Namespace
Modules: EventEmitter
Classes: Client, CloseEvent, ConnectEvent, Draft75, Draft76, Headers, Hybi, MessageEvent, OpenEvent, Proxy, Server, StreamReader
Constant Summary
collapse
- MAX_LENGTH =
0x3ffffff
- STATES =
[:connecting, :open, :closing, :closed]
- ProtocolError =
Class.new(StandardError)
- URIError =
Class.new(ArgumentError)
- ConfigurationError =
Class.new(ArgumentError)
Instance Attribute Summary collapse
Instance Method Summary
collapse
#add_listener, #emit, #listener_count, #listeners, #on, #remove_all_listeners, #remove_listener
Constructor Details
#initialize(socket, options = {}) ⇒ Driver
Returns a new instance of Driver.
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/websocket/driver.rb', line 65
def initialize(socket, options = {})
super()
Driver.validate_options(options, [:max_length, :masking, :require_masking, :protocols])
@socket = socket
@reader = StreamReader.new
@options = options
@max_length = options[:max_length] || MAX_LENGTH
@headers = Headers.new
@queue = []
@ready_state = 0
end
|
Instance Attribute Details
#protocol ⇒ Object
Returns the value of attribute protocol.
63
64
65
|
# File 'lib/websocket/driver.rb', line 63
def protocol
@protocol
end
|
#ready_state ⇒ Object
Returns the value of attribute ready_state.
63
64
65
|
# File 'lib/websocket/driver.rb', line 63
def ready_state
@ready_state
end
|
Instance Method Details
#add_extension(extension) ⇒ Object
83
84
85
|
# File 'lib/websocket/driver.rb', line 83
def add_extension(extension)
false
end
|
#binary(message) ⇒ Object
106
107
108
|
# File 'lib/websocket/driver.rb', line 106
def binary(message)
false
end
|
#close(reason = nil, code = nil) ⇒ Object
118
119
120
121
122
123
|
# File 'lib/websocket/driver.rb', line 118
def close(reason = nil, code = nil)
return false unless @ready_state == 1
@ready_state = 3
emit(:close, CloseEvent.new(nil, nil))
true
end
|
#ping(*args) ⇒ Object
110
111
112
|
# File 'lib/websocket/driver.rb', line 110
def ping(*args)
false
end
|
#pong(*args) ⇒ Object
114
115
116
|
# File 'lib/websocket/driver.rb', line 114
def pong(*args)
false
end
|
87
88
89
90
91
|
# File 'lib/websocket/driver.rb', line 87
def (name, value)
return false unless @ready_state <= 0
@headers[name] = value
true
end
|
#start ⇒ Object
93
94
95
96
97
98
99
100
|
# File 'lib/websocket/driver.rb', line 93
def start
return false unless @ready_state == 0
response = handshake_response
return false unless response
@socket.write(Driver.encode(response, :binary))
open unless @stage == -1
true
end
|
#state ⇒ Object
78
79
80
81
|
# File 'lib/websocket/driver.rb', line 78
def state
return nil unless @ready_state >= 0
STATES[@ready_state]
end
|
#text(message) ⇒ Object
102
103
104
|
# File 'lib/websocket/driver.rb', line 102
def text(message)
frame(message)
end
|