Class: Vertx::ServerWebSocket

Inherits:
Object
  • Object
show all
Includes:
WebSocketBase
Defined in:
/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb

Overview

Represents a server side WebSocket.

Instances of this class are passed into a HttpServer#websocket_handler or provided when a WebSocket handshake is manually {::Vertx::HttpServerRequest#upgrade}ed.

Constant Summary

@@j_api_type =
Object.new

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Boolean) accept?(obj)

Returns:

  • (Boolean)


26
27
28
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 26

def @@j_api_type.accept?(obj)
  obj.class == ServerWebSocket
end

+ (Object) j_api_type



35
36
37
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 35

def self.j_api_type
  @@j_api_type
end

+ (Object) j_class



38
39
40
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 38

def self.j_class
  Java::IoVertxCoreHttp::ServerWebSocket.java_class
end

+ (Object) unwrap(obj)



32
33
34
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 32

def @@j_api_type.unwrap(obj)
  obj.j_del
end

+ (Object) wrap(obj)



29
30
31
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 29

def @@j_api_type.wrap(obj)
  ServerWebSocket.new(obj)
end

Instance Method Details

- (void) accept

This method returns an undefined value.

Accept the WebSocket and terminate the WebSocket handshake.

This method should be called from the websocket handler to explicitely accept the websocker and terminate the WebSocket handshake.

Raises:

  • (ArgumentError)


377
378
379
380
381
382
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 377

def accept
  if !block_given?
    return @j_del.java_method(:accept, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling accept()"
end

- (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.

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.

Returns:

  • (String)
    the binary handler id

Raises:

  • (ArgumentError)


67
68
69
70
71
72
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 67

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 { ... }

Set a binary message handler on the connection. This handler serves a similar purpose to #handler except that if a message comes into the socket in multiple frames, the data from the frames will be aggregated into a single buffer before calling the handler (using WebSocketFrame#is_final to find the boundaries).

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


157
158
159
160
161
162
163
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 157

def binary_message_handler
  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

This method returns an undefined value.

Close the WebSocket.

Raises:

  • (ArgumentError)


184
185
186
187
188
189
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 184

def close
  if !block_given?
    return @j_del.java_method(:close, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling close()"
end

- (self) close_handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


325
326
327
328
329
330
331
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 325

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


280
281
282
283
284
285
286
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 280

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 WebSocketBase#end but writes some data to the stream before ending.

Parameters:

Raises:

  • (ArgumentError)


44
45
46
47
48
49
50
51
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 44

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


253
254
255
256
257
258
259
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 253

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


219
220
221
222
223
224
225
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 219

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) frame_handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


334
335
336
337
338
339
340
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 334

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 { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


228
229
230
231
232
233
234
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 228

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::MultiMap) headers

Returns the headers in the WebSocket handshake

Returns:

Raises:

  • (ArgumentError)


363
364
365
366
367
368
369
370
371
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 363

def headers
  if !block_given?
    if @cached_headers != nil
      return @cached_headers
    end
    return @cached_headers = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:headers, []).call(),::Vertx::MultiMap)
  end
  raise ArgumentError, "Invalid arguments when calling headers()"
end

- (::Vertx::SocketAddress) local_address

Returns the local address for this socket

Returns:

Raises:

  • (ArgumentError)


201
202
203
204
205
206
207
208
209
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 201

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

- (String) path

Returns the WebSocket handshake path.

Returns:

  • (String)
    the WebSocket handshake path.

Raises:

  • (ArgumentError)


349
350
351
352
353
354
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 349

def path
  if !block_given?
    return @j_del.java_method(:path, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling path()"
end

- (self) pause

Returns:

  • (self)

Raises:

  • (ArgumentError)


236
237
238
239
240
241
242
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 236

def pause
  if !block_given?
    @j_del.java_method(:pause, []).call()
    return self
  end
  raise ArgumentError, "Invalid arguments when calling pause()"
end

- (self) pong_handler { ... }

Set a pong message handler on the connection. This handler will be invoked every time a pong message is received on the server, and can be used by both clients and servers since the RFC 6455 Sections 5.5.2 and 5.5.3 do not specify whether the client or server sends a ping.

Pong frames may be at most 125 bytes (octets).

There is no ping handler since pings should immediately be responded to with a pong with identical content

Pong frames may be received unsolicited.

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


175
176
177
178
179
180
181
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 175

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

- (String) query

Returns the WebSocket handshake query string.

Returns:

  • (String)
    the WebSocket handshake query string.

Raises:

  • (ArgumentError)


356
357
358
359
360
361
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 356

def query
  if !block_given?
    return @j_del.java_method(:query, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling query()"
end

- (void) reject(status = nil)

This method returns an undefined value.

Like #reject but with a status.

Parameters:

  • status (Fixnum) (defaults to: nil)

Raises:

  • (ArgumentError)


386
387
388
389
390
391
392
393
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 386

def reject(status=nil)
  if !block_given? && status == nil
    return @j_del.java_method(:reject, []).call()
  elsif status.class == Fixnum && !block_given?
    return @j_del.java_method(:reject, [Java::int.java_class]).call(status)
  end
  raise ArgumentError, "Invalid arguments when calling reject(#{status})"
end

- (::Vertx::SocketAddress) remote_address

Returns the remote address for this socket

Returns:

Raises:

  • (ArgumentError)


191
192
193
194
195
196
197
198
199
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 191

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

Returns:

  • (self)

Raises:

  • (ArgumentError)


244
245
246
247
248
249
250
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 244

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)

Parameters:

  • maxSize (Fixnum) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)


271
272
273
274
275
276
277
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 271

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?

Returns true if this HttpConnection is encrypted via SSL/TLS.

Returns:

  • (true, false)
    true if this HttpConnection is encrypted via SSL/TLS.

Raises:

  • (ArgumentError)


211
212
213
214
215
216
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 211

def ssl?
  if !block_given?
    return @j_del.java_method(:isSsl, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling ssl?()"
end

- (String) sub_protocol

Returns the websocket sub protocol selected by the websocket handshake.

On the server, the value will be null when the handler receives the websocket callback as the handshake will not be completed yet.

Returns:

  • (String)

Raises:

  • (ArgumentError)


91
92
93
94
95
96
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 91

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

When a 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.

Returns:

  • (String)

Raises:

  • (ArgumentError)


80
81
82
83
84
85
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 80

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 { ... }

Set a text message handler on the connection. This handler will be called similar to the , but the buffer will be converted to a String first

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


145
146
147
148
149
150
151
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 145

def text_message_handler
  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

- (String) uri

Returns:

  • (String)

Raises:

  • (ArgumentError)


342
343
344
345
346
347
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 342

def uri
  if !block_given?
    return @j_del.java_method(:uri, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling uri()"
end

- (self) write(data = nil)

Parameters:

Returns:

  • (self)

Raises:

  • (ArgumentError)


262
263
264
265
266
267
268
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 262

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)

Parameters:

Returns:

  • (self)

Raises:

  • (ArgumentError)


316
317
318
319
320
321
322
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 316

def write_binary_message(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)

Parameters:

Returns:

  • (self)

Raises:

  • (ArgumentError)


307
308
309
310
311
312
313
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 307

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)

Parameters:

  • text (String) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)


298
299
300
301
302
303
304
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 298

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)

Parameters:

Returns:

  • (self)

Raises:

  • (ArgumentError)


289
290
291
292
293
294
295
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 289

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)

Writes a ping to the connection. This will be written in a single frame. Ping frames may be at most 125 bytes (octets).

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 pingHandler because RFC 6455 section 5.5.2 clearly states that the only response to a ping is a pong with identical contents.

Parameters:

  • data (::Vertx::Buffer) (defaults to: nil)
    the data to write, may be at most 125 bytes

Returns:

  • (self)

Raises:

  • (ArgumentError)


117
118
119
120
121
122
123
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 117

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)

Writes a pong to the connection. This will be written in a single frame. Pong frames may be at most 125 bytes (octets).

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, as the server and client both handle responding to a ping with a pong 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.

Parameters:

  • data (::Vertx::Buffer) (defaults to: nil)
    the data to write, may be at most 125 bytes

Returns:

  • (self)

Raises:

  • (ArgumentError)


134
135
136
137
138
139
140
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 134

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?

This will return true if there are more bytes in the write queue than the value set using #set_write_queue_max_size

Returns:

  • (true, false)
    true if write queue is full

Raises:

  • (ArgumentError)


54
55
56
57
58
59
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 54

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)

Writes a (potentially large) piece of text data to the connection. This data might be written as multiple frames if it exceeds the maximum WebSocket frame size.

Parameters:

  • text (String) (defaults to: nil)
    the data to write

Returns:

  • (self)

Raises:

  • (ArgumentError)


101
102
103
104
105
106
107
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/server_web_socket.rb', line 101

def write_text_message(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