Class FTW::WebSocket::Writer
In: lib/ftw/websocket/writer.rb
lib/ftw/websocket/writer.rb
Parent: Object

This class implements a writer for WebSocket messages over a stream.

Protocol diagram copied from RFC6455

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-------+-+-------------+-------------------------------+
   |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
   |I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
   |N|V|V|V|       |S|             |   (if payload len==126/127)   |
   | |1|2|3|       |K|             |                               |
   +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
   |     Extended payload length continued, if payload len == 127  |
   + - - - - - - - - - - - - - - - +-------------------------------+
   |                               |Masking-key, if MASK set to 1  |
   +-------------------------------+-------------------------------+
   | Masking-key (continued)       |          Payload Data         |
   +-------------------------------- - - - - - - - - - - - - - - - +
   :                     Payload Data continued ...                :
   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
   |                     Payload Data continued ...                |
   +---------------------------------------------------------------+

Methods

Included Modules

FTW::WebSocket::Constants FTW::WebSocket::Constants

Constants

VALID_MODES = [:server, :client]   A list of valid modes. Used to validate input in write_text.

In :server mode, payloads are not masked. In :client mode, payloads are masked. Masking is described in RFC6455.

VALID_MODES = [:server, :client]   A list of valid modes. Used to validate input in write_text.

In :server mode, payloads are not masked. In :client mode, payloads are masked. Masking is described in RFC6455.

Public Instance methods

Write the given text in a websocket frame to the connection.

Valid ‘mode’ settings are :server or :client. If :client, the payload will be masked according to RFC6455 section 5.3: tools.ietf.org/html/rfc6455#section-5.3

Write the given text in a websocket frame to the connection.

Valid ‘mode’ settings are :server or :client. If :client, the payload will be masked according to RFC6455 section 5.3: tools.ietf.org/html/rfc6455#section-5.3

[Validate]