Class: Vertx::WebSocket
- Inherits:
-
Object
- Object
- Vertx::WebSocket
- Includes:
- WebSocketBase
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb
Overview
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary (collapse)
- + (Boolean) accept?(obj)
- + (Object) j_api_type
- + (Object) j_class
- + (Object) unwrap(obj)
- + (Object) wrap(obj)
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) { ... }
Same as but with an handler called when the operation completes.
- - (self) close_handler { ... }
-
- (true, false) closed?
true if the WebSocket is closed.
- - (self) drain_handler { ... }
-
- (void) end(data = nil) { ... }
Same as but with an handler called when the operation completes.
- - (self) end_handler { ... }
- - (self) exception_handler { ... }
- - (self) fetch(amount = nil)
- - (self) frame_handler { ... }
- - (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.
-
- (void) write(data = nil) { ... }
Same as but with an handler called when the operation completes.
- - (self) write_binary_message(data = nil) { ... }
- - (self) write_final_binary_frame(data = nil) { ... }
- - (self) write_final_text_frame(text = nil) { ... }
- - (self) write_frame(frame = nil) { ... }
-
- (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) { ... }
Class Method Details
+ (Boolean) accept?(obj)
25 26 27 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 25 def @@j_api_type.accept?(obj) obj.class == WebSocket end |
+ (Object) j_api_type
34 35 36 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 34 def self.j_api_type @@j_api_type end |
+ (Object) j_class
37 38 39 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 37 def self.j_class Java::IoVertxCoreHttp::WebSocket.java_class end |
+ (Object) unwrap(obj)
31 32 33 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 31 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
28 29 30 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 28 def @@j_api_type.wrap(obj) WebSocket.new(obj) end |
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.
102 103 104 105 106 107 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 102 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 { ... }
231 232 233 234 235 236 237 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 231 def if true @j_del.java_method(:binaryMessageHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) unless !block_given? })) 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.
Same as but with anhandler called when the operation completes
261 262 263 264 265 266 267 268 269 270 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 261 def close(statusCode=nil,reason=nil) if true && statusCode == nil && reason == nil return @j_del.java_method(:close, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) elsif statusCode.class == Fixnum && true && reason == nil return @j_del.java_method(:close, [Java::short.java_class,Java::IoVertxCore::Handler.java_class]).call(::Vertx::Util::Utils.to_short(statusCode),(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) elsif statusCode.class == Fixnum && reason.class == String && true return @j_del.java_method(:close, [Java::short.java_class,Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(::Vertx::Util::Utils.to_short(statusCode),reason,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) end raise ArgumentError, "Invalid arguments when calling close(#{statusCode},#{reason})" end |
- (self) close_handler { ... }
377 378 379 380 381 382 383 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 377 def close_handler if true @j_del.java_method(:closeHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield unless !block_given? }) return self end raise ArgumentError, "Invalid arguments when calling close_handler()" end |
- (true, false) closed?
true if the WebSocket is closed
299 300 301 302 303 304 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 299 def closed? if !block_given? return @j_del.java_method(:isClosed, []).call() end raise ArgumentError, "Invalid arguments when calling closed?()" end |
- (self) drain_handler { ... }
368 369 370 371 372 373 374 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 368 def drain_handler if true @j_del.java_method(:drainHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield unless !block_given? }) return self end raise ArgumentError, "Invalid arguments when calling drain_handler()" end |
- (void) end(data = nil) { ... }
This method returns an undefined value.
Same as but with anhandler called when the operation completes
54 55 56 57 58 59 60 61 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 54 def end(data=nil) if true && data == nil return @j_del.java_method(:end, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) elsif data.class.method_defined?(:j_del) && true return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) end raise ArgumentError, "Invalid arguments when calling end(#{data})" end |
- (self) end_handler { ... }
350 351 352 353 354 355 356 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 350 def end_handler if true @j_del.java_method(:endHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield unless !block_given? }) return self end raise ArgumentError, "Invalid arguments when calling end_handler()" end |
- (self) exception_handler { ... }
307 308 309 310 311 312 313 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 307 def exception_handler if true @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.from_throwable(event)) unless !block_given? })) return self end raise ArgumentError, "Invalid arguments when calling exception_handler()" end |
- (self) fetch(amount = nil)
341 342 343 344 345 346 347 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 341 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 { ... }
386 387 388 389 390 391 392 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 386 def frame_handler if true @j_del.java_method(:frameHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::WebSocketFrame)) unless !block_given? })) return self end raise ArgumentError, "Invalid arguments when calling frame_handler()" end |
- (self) handler { ... }
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.rb', line 316 def handler if true @j_del.java_method(:handler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) unless !block_given? })) return self end raise ArgumentError, "Invalid arguments when calling handler()" end |
- (::Vertx::SocketAddress) local_address
282 283 284 285 286 287 288 289 290 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 282 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
324 325 326 327 328 329 330 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 324 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.
74 75 76 77 78 79 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 74 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.
89 90 91 92 93 94 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 89 def pipe_to(dst=nil) if dst.class.method_defined?(:j_del) && true 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) } unless !block_given?)) 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.
249 250 251 252 253 254 255 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 249 def pong_handler if true @j_del.java_method(:pongHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Buffer)) unless !block_given? })) return self end raise ArgumentError, "Invalid arguments when calling pong_handler()" end |
- (::Vertx::SocketAddress) remote_address
272 273 274 275 276 277 278 279 280 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 272 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
332 333 334 335 336 337 338 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 332 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)
359 360 361 362 363 364 365 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 359 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?
292 293 294 295 296 297 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 292 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.
126 127 128 129 130 131 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 126 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.
115 116 117 118 119 120 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 115 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 { ... }
219 220 221 222 223 224 225 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 219 def if true @j_del.java_method(:textMessageHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event) unless !block_given? })) return self end raise ArgumentError, "Invalid arguments when calling text_message_handler()" end |
- (void) write(data = nil) { ... }
This method returns an undefined value.
Same as but with anhandler called when the operation completes
44 45 46 47 48 49 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 44 def write(data=nil) if data.class.method_defined?(:j_del) && true return @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) end raise ArgumentError, "Invalid arguments when calling write(#{data})" end |
- (self) write_binary_message(data = nil) { ... }
165 166 167 168 169 170 171 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 165 def (data=nil) if data.class.method_defined?(:j_del) && true @j_del.java_method(:writeBinaryMessage, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) return self end raise ArgumentError, "Invalid arguments when calling write_binary_message(#{data})" end |
- (self) write_final_binary_frame(data = nil) { ... }
155 156 157 158 159 160 161 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 155 def write_final_binary_frame(data=nil) if data.class.method_defined?(:j_del) && true @j_del.java_method(:writeFinalBinaryFrame, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(data.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) return self end raise ArgumentError, "Invalid arguments when calling write_final_binary_frame(#{data})" end |
- (self) write_final_text_frame(text = nil) { ... }
145 146 147 148 149 150 151 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 145 def write_final_text_frame(text=nil) if text.class == String && true @j_del.java_method(:writeFinalTextFrame, [Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(text,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) return self end raise ArgumentError, "Invalid arguments when calling write_final_text_frame(#{text})" end |
- (self) write_frame(frame = nil) { ... }
135 136 137 138 139 140 141 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 135 def write_frame(frame=nil) if frame.class.method_defined?(:j_del) && true @j_del.java_method(:writeFrame, [Java::IoVertxCoreHttp::WebSocketFrame.java_class,Java::IoVertxCore::Handler.java_class]).call(frame.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) 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.
191 192 193 194 195 196 197 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 191 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.
208 209 210 211 212 213 214 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 208 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
64 65 66 67 68 69 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 64 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) { ... }
175 176 177 178 179 180 181 |
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx/web_socket.rb', line 175 def (text=nil) if text.class == String && true @j_del.java_method(:writeTextMessage, [Java::java.lang.String.java_class,Java::IoVertxCore::Handler.java_class]).call(text,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil) } unless !block_given?)) return self end raise ArgumentError, "Invalid arguments when calling write_text_message(#{text})" end |