Class: Faye::WebSocket::Draft75Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/faye/util/web_socket/draft75_parser.rb

Direct Known Subclasses

Draft76Parser

Instance Method Summary collapse

Constructor Details

#initialize(web_socket) ⇒ Draft75Parser

Returns a new instance of Draft75Parser.



5
6
7
8
9
# File 'lib/faye/util/web_socket/draft75_parser.rb', line 5

def initialize(web_socket)
  @socket    = web_socket
  @buffer    = []
  @buffering = false
end

Instance Method Details

#frame(data, type = nil, error_type = nil) ⇒ Object



31
32
33
# File 'lib/faye/util/web_socket/draft75_parser.rb', line 31

def frame(data, type = nil, error_type = nil)
  ["\x00", data, "\xFF"].map(&Faye.method(:encode)) * ''
end

#handshake_responseObject



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/faye/util/web_socket/draft75_parser.rb', line 15

def handshake_response
  request = @socket.request
  
  upgrade =  "HTTP/1.1 101 Web Socket Protocol Handshake\r\n"
  upgrade << "Upgrade: WebSocket\r\n"
  upgrade << "Connection: Upgrade\r\n"
  upgrade << "WebSocket-Origin: #{request.env['HTTP_ORIGIN']}\r\n"
  upgrade << "WebSocket-Location: #{@socket.url}\r\n"
  upgrade << "\r\n"
  upgrade
end

#parse(data) ⇒ Object



27
28
29
# File 'lib/faye/util/web_socket/draft75_parser.rb', line 27

def parse(data)
  data.each_byte(&method(:handle_byte))
end

#versionObject



11
12
13
# File 'lib/faye/util/web_socket/draft75_parser.rb', line 11

def version
  'draft-75'
end