Class: WebSocket::Frame::Incoming

### Home Classes Methods

### In Files

- lib/websocket/frame/incoming.rb
- lib/websocket/frame/incoming/client.rb
- lib/websocket/frame/incoming/server.rb

### Parent

WebSocket::Frame::Base

### Namespace

- CLASS WebSocket::Frame::Incoming::Client
- CLASS WebSocket::Frame::Incoming::Server

### Methods

- ::new
- #<<
- #decoded?
- #next
- #to_s

### Class/Module Index

Quicksearch

- WebSocket
- WebSocket::Error
- WebSocket::Error::Frame
- WebSocket::Error::Frame::ControlFramePayloadTooLong
- WebSocket::Error::Frame::DataFrameInsteadContinuation
- WebSocket::Error::Frame::FragmentedControlFrame
- WebSocket::Error::Frame::Invalid
- WebSocket::Error::Frame::InvalidPayloadEncoding
- WebSocket::Error::Frame::MaskTooShort
- WebSocket::Error::Frame::ReservedBitUsed
- WebSocket::Error::Frame::TooLong
- WebSocket::Error::Frame::UnexpectedContinuationFrame
- WebSocket::Error::Frame::UnknownCloseCode
- WebSocket::Error::Frame::UnknownFrameType
- WebSocket::Error::Frame::UnknownOpcode
- WebSocket::Error::Frame::UnknownVersion
- WebSocket::Error::Handshake
- WebSocket::Error::Handshake::GetRequestRequired
- WebSocket::Error::Handshake::InvalidAuthentication
- WebSocket::Error::Handshake::InvalidHeader
- WebSocket::Error::Handshake::InvalidStatusCode
- WebSocket::Error::Handshake::NoHostProvided
- WebSocket::Error::Handshake::UnknownVersion
- WebSocket::ExceptionHandler
- WebSocket::ExceptionHandler::ClassMethods
- WebSocket::Frame
- WebSocket::Frame::Base
- WebSocket::Frame::Data
- WebSocket::Frame::Handler
- WebSocket::Frame::Handler::Base
- WebSocket::Frame::Handler::Handler03
- WebSocket::Frame::Handler::Handler04
- WebSocket::Frame::Handler::Handler05
- WebSocket::Frame::Handler::Handler07
- WebSocket::Frame::Handler::Handler75
- WebSocket::Frame::Incoming
- WebSocket::Frame::Incoming::Client
- WebSocket::Frame::Incoming::Server
- WebSocket::Frame::Outgoing
- WebSocket::Frame::Outgoing::Client
- WebSocket::Frame::Outgoing::Server
- WebSocket::Handshake
- WebSocket::Handshake::Base
- WebSocket::Handshake::Client
- WebSocket::Handshake::Handler
- WebSocket::Handshake::Handler::Base
- WebSocket::Handshake::Handler::Client
- WebSocket::Handshake::Handler::Client01
- WebSocket::Handshake::Handler::Client04
- WebSocket::Handshake::Handler::Client11
- WebSocket::Handshake::Handler::Client75
- WebSocket::Handshake::Handler::Client76
- WebSocket::Handshake::Handler::Server
- WebSocket::Handshake::Handler::Server04
- WebSocket::Handshake::Handler::Server75
- WebSocket::Handshake::Handler::Server76
- WebSocket::Handshake::Server

No matching classes.

# WebSocket::Frame::Incoming

Construct or parse incoming WebSocket Frame. @note You should NEVER use this class directly - use Client or Server subclasses instead, as they contain additional frame options(i.e. Client-side masking in draft 04)

@example

    frame = WebSocket::Frame::Incoming::Server.new(version: @handshake.version)
    frame << "\x81\x05\x48\x65\x6c\x6c\x6f\x81\x06\x77\x6f\x72\x6c\x64\x21"
    frame.next # "Hello"
    frame.next # "world!""

### Public Class Methods

new(args = {}) click to toggle source

    # File lib/websocket/frame/incoming.rb, line 16
    def initialize(args = {})
      @decoded = args[:decoded] || false
      super
    end

### Public Instance Methods

<<(data) click to toggle source

Add provided string as raw incoming frame. @param data [String] Raw frame

    # File lib/websocket/frame/incoming.rb, line 31
    def <<(data)
      @data << data
    end

decoded?() click to toggle source

If data is still encoded after receiving then this is false. After calling "next" you will receive another instance of incoming frame, but with data decoded - this function will return true and to_s will return frame content instead of raw data. @return [Boolean] If frame already decoded?

    # File lib/websocket/frame/incoming.rb, line 25
    def decoded?
      @decoded
    end

next() click to toggle source

Return next complete frame. This function will merge together splitted frames and return as combined content. Check error if nil received to check for eventual parsing errors @return [WebSocket::Frame::Incoming] Single incoming frame or nil if no complete frame is available.

    # File lib/websocket/frame/incoming.rb, line 39
    def next
      @handler.decode_frame unless decoded?
    end

to_s() click to toggle source

If decoded then this will return frame content. Otherwise it will return raw frame. @return [String] Data of frame

    # File lib/websocket/frame/incoming.rb, line 46
    def to_s
      @data
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.