Class List Method List File List

# Class: Vertx::WebSocket

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

## Overview

Represents a client-side WebSocket.

## 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
  Close the WebSocket.
- - (self) close_handler { ... }
- - (self) drain_handler { ... }
- - (void) end(t = nil)
  Same as Vertx::WebSocketBase#end but writes some data to the stream before ending.
- - (self) end_handler { ... }
- - (self) exception_handler { ... }
- - (self) frame_handler { ... }
- - (self) handler { ... }
- - (::Vertx::SocketAddress) local_address
  The local address for this socket.
- - (self) pause
- - (self) pong_handler { ... }
  Set a pong message 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)
- - (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 to the connection.
- - (self) write_pong(data = nil)
  Writes a pong 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)

Returns:

- (`Boolean`)

    22
    23
    24
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 22

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

### + (`Object`) j_api_type

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

    def self.j_api_type
      @@j_api_type
    end

### + (`Object`) j_class

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

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

### + (`Object`) unwrap(obj)

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

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

### + (`Object`) wrap(obj)

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

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

## Instance Method Details

### - (`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`)

    63
    64
    65
    66
    67
    68
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 63

    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 Vertx::WebSocketFrame#is_final to find the boundaries).

Yields:

- the handler

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    142
    143
    144
    145
    146
    147
    148
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 142

    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`)

    169
    170
    171
    172
    173
    174
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 169

    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`)

    319
    320
    321
    322
    323
    324
    325
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 319

    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`)

    265
    266
    267
    268
    269
    270
    271
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 265

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

Parameters:

- t (`::Vertx::Buffer`) (defaults to: `nil`)

Raises:

- (`ArgumentError`)

    40
    41
    42
    43
    44
    45
    46
    47
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 40

    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`)

    238
    239
    240
    241
    242
    243
    244
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 238

    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`)

    204
    205
    206
    207
    208
    209
    210
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 204

    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`)

    328
    329
    330
    331
    332
    333
    334
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 328

    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`)

    213
    214
    215
    216
    217
    218
    219
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 213

    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

Returns the local address for this socket

Returns:

- (`::Vertx::SocketAddress`) —
  the local address for this socket

Raises:

- (`ArgumentError`)

    186
    187
    188
    189
    190
    191
    192
    193
    194
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 186

    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

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    221
    222
    223
    224
    225
    226
    227
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 221

    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`)

    160
    161
    162
    163
    164
    165
    166
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 160

    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

Returns the remote address for this socket

Returns:

- (`::Vertx::SocketAddress`) —
  the remote address for this socket

Raises:

- (`ArgumentError`)

    176
    177
    178
    179
    180
    181
    182
    183
    184
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 176

    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`)

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

    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`)

    256
    257
    258
    259
    260
    261
    262
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 256

    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`)

    196
    197
    198
    199
    200
    201
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 196

    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`)

    87
    88
    89
    90
    91
    92
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 87

    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`)

    76
    77
    78
    79
    80
    81
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 76

    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`)

    130
    131
    132
    133
    134
    135
    136
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 130

    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

### - (`self`) write(data = nil)

Parameters:

- data (`::Vertx::Buffer`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    247
    248
    249
    250
    251
    252
    253
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 247

    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:

- data (`::Vertx::Buffer`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    301
    302
    303
    304
    305
    306
    307
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 301

    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:

- data (`::Vertx::Buffer`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    292
    293
    294
    295
    296
    297
    298
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 292

    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`)

    283
    284
    285
    286
    287
    288
    289
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 283

    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:

- frame (`::Vertx::WebSocketFrame`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    274
    275
    276
    277
    278
    279
    280
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 274

    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`)

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

    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`)

    119
    120
    121
    122
    123
    124
    125
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 119

    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`)

    50
    51
    52
    53
    54
    55
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 50

    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)

Parameters:

- text (`String`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    310
    311
    312
    313
    314
    315
    316
    # File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/web_socket.rb', line 310

    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