Module: Vertx::WebSocketBase
- Includes:
- ReadStream, WriteStream
- Included in:
- ServerWebSocket, WebSocket, WebSocketBaseImpl
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb
Instance Method Summary (collapse)
-
- (String) binary_handler_id
When a WebSocket is created it automatically registers an event handler with the event bus - the ID of that handler is given by this method.
-
- (self) binary_message_handler { ... }
Set a binary message handler on the connection.
-
- (void) close(statusCode = nil, reason = nil)
Close sending a close frame with specified status code and reason.
-
- (self) close_handler { ... }
Set a close handler.
- - (self) drain_handler { ... }
-
- (void) end(t = nil)
Same as #end but writes some data to the stream before ending.
- - (self) end_handler { ... }
- - (self) exception_handler { ... }
- - (self) fetch(amount = nil)
-
- (self) frame_handler { ... }
Set a frame handler on the connection.
- - (self) handler { ... }
-
- (::Vertx::SocketAddress) local_address
The local address for this socket.
- - (self) pause
-
- (::Vertx::Pipe) pipe
Pause this stream and return a to transfer the elements of this stream to a destination .
-
- (void) pipe_to(dst = nil) { ... }
Pipe this ReadStream to the WriteStream.
-
- (self) pong_handler { ... }
Set a pong frame handler on the connection.
-
- (::Vertx::SocketAddress) remote_address
The remote address for this socket.
- - (self) resume
- - (self) set_write_queue_max_size(maxSize = nil)
-
- (true, false) ssl?
True if this HttpConnection is encrypted via SSL/TLS.
-
- (String) sub_protocol
Returns the WebSocket sub protocol selected by the WebSocket handshake.
-
- (String) text_handler_id
When a WebSocket is created it automatically registers an event handler with the eventbus, the ID of that handler is given by textHandlerID.
-
- (self) text_message_handler { ... }
Set a text message handler on the connection.
- - (self) write(data = nil)
-
- (self) write_binary_message(data = nil)
Writes a (potentially large) piece of binary data to the connection.
-
- (self) write_final_binary_frame(data = nil)
Write a final WebSocket binary frame to the connection.
-
- (self) write_final_text_frame(text = nil)
Write a final WebSocket text frame to the connection.
-
- (self) write_frame(frame = nil)
Write a WebSocket frame to the connection.
-
- (self) write_ping(data = nil)
Writes a ping frame to the connection.
-
- (self) write_pong(data = nil)
Writes a pong frame to the connection.
-
- (true, false) write_queue_full?
This will return true if there are more bytes in the write queue than the value set using #set_write_queue_max_size.
-
- (self) write_text_message(text = nil)
Writes a (potentially large) piece of text data to the connection.
Instance Method Details
- (String) binary_handler_id
WebSocket
is created it automatically registers an event handler with the event bus - the ID of that
handler is given by this method.
Given this ID, a different event loop can send a binary frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.
145 146 147 148 149 150 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 145 def binary_handler_id if !block_given? return @j_del.java_method(:binaryHandlerID, []).call() end raise ArgumentError, "Invalid arguments when calling binary_handler_id()" end |
- (self) binary_message_handler { ... }
298 299 300 301 302 303 304 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 298 def if block_given? @j_del.java_method(:binaryMessageHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) })) return self end raise ArgumentError, "Invalid arguments when calling binary_message_handler()" end |
- (void) close(statusCode = nil, reason = nil)
This method returns an undefined value.
Close sending a close frame with specified status code and reason. You can give a look at various close payloads here: RFC6455 section 7.4.1 No more messages can be sent.
330 331 332 333 334 335 336 337 338 339 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 330 def close(statusCode=nil,reason=nil) if !block_given? && statusCode == nil && reason == nil return @j_del.java_method(:close, []).call() elsif statusCode.class == Fixnum && !block_given? && reason == nil return @j_del.java_method(:close, [Java::short.java_class]).call(::Vertx::Util::Utils.to_short(statusCode)) elsif statusCode.class == Fixnum && reason.class == String && !block_given? return @j_del.java_method(:close, [Java::short.java_class,Java::java.lang.String.java_class]).call(::Vertx::Util::Utils.to_short(statusCode),reason) end raise ArgumentError, "Invalid arguments when calling close(#{statusCode},#{reason})" end |
- (self) close_handler { ... }
265 266 267 268 269 270 271 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 265 def close_handler if block_given? @j_del.java_method(:closeHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling close_handler()" end |
- (self) drain_handler { ... }
131 132 133 134 135 136 137 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 131 def drain_handler if block_given? @j_del.java_method(:drainHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling drain_handler()" end |
- (void) end(t = nil)
This method returns an undefined value.
Same as #end but writes some data to the stream before ending.
16 17 18 19 20 21 22 23 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 16 def end(t=nil) if !block_given? && t == nil return @j_del.java_method(:end, []).call() elsif t.class.method_defined?(:j_del) && !block_given? return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(t.j_del) end raise ArgumentError, "Invalid arguments when calling end(#{t})" end |
- (self) end_handler { ... }
104 105 106 107 108 109 110 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 104 def end_handler if block_given? @j_del.java_method(:endHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling end_handler()" end |
- (self) exception_handler { ... }
61 62 63 64 65 66 67 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 61 def exception_handler if block_given? @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.from_throwable(event)) })) return self end raise ArgumentError, "Invalid arguments when calling exception_handler()" end |
- (self) fetch(amount = nil)
95 96 97 98 99 100 101 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 95 def fetch(amount=nil) if amount.class == Fixnum && !block_given? @j_del.java_method(:fetch, [Java::long.java_class]).call(amount) return self end raise ArgumentError, "Invalid arguments when calling fetch(#{amount})" end |
- (self) frame_handler { ... }
275 276 277 278 279 280 281 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 275 def frame_handler if block_given? @j_del.java_method(:frameHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::WebSocketFrame)) })) return self end raise ArgumentError, "Invalid arguments when calling frame_handler()" end |
- (self) handler { ... }
70 71 72 73 74 75 76 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 70 def handler if block_given? @j_del.java_method(:handler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) })) return self end raise ArgumentError, "Invalid arguments when calling handler()" end |
- (::Vertx::SocketAddress) local_address
351 352 353 354 355 356 357 358 359 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 351 def local_address if !block_given? if @cached_local_address != nil return @cached_local_address end return @cached_local_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:localAddress, []).call(),::Vertx::SocketAddress) end raise ArgumentError, "Invalid arguments when calling local_address()" end |
- (self) pause
78 79 80 81 82 83 84 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 78 def pause if !block_given? @j_del.java_method(:pause, []).call() return self end raise ArgumentError, "Invalid arguments when calling pause()" end |
- (::Vertx::Pipe) pipe
WriteStream
.
36 37 38 39 40 41 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 36 def pipe if !block_given? return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:pipe, []).call(),::Vertx::Pipe,::Vertx::Buffer.j_api_type) end raise ArgumentError, "Invalid arguments when calling pipe()" end |
- (void) pipe_to(dst = nil) { ... }
This method returns an undefined value.
Pipe thisReadStream
to the WriteStream
.
Elements emitted by this stream will be written to the write stream until this stream ends or fails.
Once this stream has ended or failed, the write stream will be ended and the handler
will be
called with the result.
51 52 53 54 55 56 57 58 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 51 def pipe_to(dst=nil) if dst.class.method_defined?(:j_del) && !block_given? return @j_del.java_method(:pipeTo, [Java::IoVertxCoreStreams::WriteStream.java_class]).call(dst.j_del) elsif dst.class.method_defined?(:j_del) && block_given? return @j_del.java_method(:pipeTo, [Java::IoVertxCoreStreams::WriteStream.java_class,Java::IoVertxCore::Handler.java_class]).call(dst.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) })) end raise ArgumentError, "Invalid arguments when calling pipe_to(#{dst})" end |
- (self) pong_handler { ... }
Pong frames may be at most 125 bytes (octets).
There is no ping handler since ping frames should immediately be responded to with a pong frame with identical content
Pong frames may be received unsolicited.
316 317 318 319 320 321 322 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 316 def pong_handler if block_given? @j_del.java_method(:pongHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) })) return self end raise ArgumentError, "Invalid arguments when calling pong_handler()" end |
- (::Vertx::SocketAddress) remote_address
341 342 343 344 345 346 347 348 349 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 341 def remote_address if !block_given? if @cached_remote_address != nil return @cached_remote_address end return @cached_remote_address = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:remoteAddress, []).call(),::Vertx::SocketAddress) end raise ArgumentError, "Invalid arguments when calling remote_address()" end |
- (self) resume
86 87 88 89 90 91 92 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 86 def resume if !block_given? @j_del.java_method(:resume, []).call() return self end raise ArgumentError, "Invalid arguments when calling resume()" end |
- (self) set_write_queue_max_size(maxSize = nil)
122 123 124 125 126 127 128 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 122 def set_write_queue_max_size(maxSize=nil) if maxSize.class == Fixnum && !block_given? @j_del.java_method(:setWriteQueueMaxSize, [Java::int.java_class]).call(maxSize) return self end raise ArgumentError, "Invalid arguments when calling set_write_queue_max_size(#{maxSize})" end |
- (true, false) ssl?
361 362 363 364 365 366 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 361 def ssl? if !block_given? return @j_del.java_method(:isSsl, []).call() end raise ArgumentError, "Invalid arguments when calling ssl?()" end |
- (String) sub_protocol
null
when the handler receives the websocket callback as the
handshake will not be completed yet.
169 170 171 172 173 174 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 169 def sub_protocol if !block_given? return @j_del.java_method(:subProtocol, []).call() end raise ArgumentError, "Invalid arguments when calling sub_protocol()" end |
- (String) text_handler_id
WebSocket
is created it automatically registers an event handler with the eventbus, the ID of that
handler is given by textHandlerID
.
Given this ID, a different event loop can send a text frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.
158 159 160 161 162 163 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 158 def text_handler_id if !block_given? return @j_del.java_method(:textHandlerID, []).call() end raise ArgumentError, "Invalid arguments when calling text_handler_id()" end |
- (self) text_message_handler { ... }
286 287 288 289 290 291 292 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 286 def if block_given? @j_del.java_method(:textMessageHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event) })) return self end raise ArgumentError, "Invalid arguments when calling text_message_handler()" end |
- (self) write(data = nil)
113 114 115 116 117 118 119 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 113 def write(data=nil) if data.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del) return self end raise ArgumentError, "Invalid arguments when calling write(#{data})" end |
- (self) write_binary_message(data = nil)
209 210 211 212 213 214 215 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 209 def (data=nil) if data.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writeBinaryMessage, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_binary_message(#{data})" end |
- (self) write_final_binary_frame(data = nil)
198 199 200 201 202 203 204 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 198 def write_final_binary_frame(data=nil) if data.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writeFinalBinaryFrame, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_final_binary_frame(#{data})" end |
- (self) write_final_text_frame(text = nil)
188 189 190 191 192 193 194 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 188 def write_final_text_frame(text=nil) if text.class == String && !block_given? @j_del.java_method(:writeFinalTextFrame, [Java::java.lang.String.java_class]).call(text) return self end raise ArgumentError, "Invalid arguments when calling write_final_text_frame(#{text})" end |
- (self) write_frame(frame = nil)
178 179 180 181 182 183 184 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 178 def write_frame(frame=nil) if frame.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writeFrame, [Java::IoVertxCoreHttp::WebSocketFrame.java_class]).call(frame.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_frame(#{frame})" end |
- (self) write_ping(data = nil)
This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 Section section 5.5.2.
There is no handler for ping frames because RFC 6455 clearly states that the only response to a ping frame is a pong frame with identical contents.
236 237 238 239 240 241 242 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 236 def write_ping(data=nil) if data.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writePing, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_ping(#{data})" end |
- (self) write_pong(data = nil)
This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 section 5.5.2.
There is no need to manually write a pong frame, as the server and client both handle responding to a ping from with a pong from automatically and this is exposed to users. RFC 6455 section 5.5.3 states that pongs may be sent unsolicited in order to implement a one way heartbeat.
253 254 255 256 257 258 259 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 253 def write_pong(data=nil) if data.class.method_defined?(:j_del) && !block_given? @j_del.java_method(:writePong, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(data.j_del) return self end raise ArgumentError, "Invalid arguments when calling write_pong(#{data})" end |
- (true, false) write_queue_full?
true
if there are more bytes in the write queue than the value set using #set_write_queue_max_size
26 27 28 29 30 31 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 26 def write_queue_full? if !block_given? return @j_del.java_method(:writeQueueFull, []).call() end raise ArgumentError, "Invalid arguments when calling write_queue_full?()" end |
- (self) write_text_message(text = nil)
220 221 222 223 224 225 226 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket_base.rb', line 220 def (text=nil) if text.class == String && !block_given? @j_del.java_method(:writeTextMessage, [Java::java.lang.String.java_class]).call(text) return self end raise ArgumentError, "Invalid arguments when calling write_text_message(#{text})" end |