class WebSocket::Driver::Draft76

Constants

BODY_SIZE

Public Class Methods

new(socket, options = {}) click to toggle source
# File lib/websocket/driver/draft76.rb, line 7
def initialize(socket, options = {})
  super
  input  = @socket.env['rack.input']
  @stage = -1
  @body  = (input ? input.read : String.new('')).force_encoding(BINARY)

  @headers.clear
  @headers['Upgrade'] = 'WebSocket'
  @headers['Connection'] = 'Upgrade'
  @headers['Sec-WebSocket-Origin'] = @socket.env['HTTP_ORIGIN']
  @headers['Sec-WebSocket-Location'] = @socket.url
end

Public Instance Methods

close(reason = nil, code = nil) click to toggle source
# File lib/websocket/driver/draft76.rb, line 30
def close(reason = nil, code = nil)
  return false if @ready_state == 3
  @socket.write([0xFF, 0x00].pack('C*'))
  @ready_state = 3
  emit(:close, CloseEvent.new(nil, nil))
  true
end
start() click to toggle source
# File lib/websocket/driver/draft76.rb, line 24
def start
  return false unless super
  send_handshake_body
  true
end
version() click to toggle source
# File lib/websocket/driver/draft76.rb, line 20
def version
  'hixie-76'
end