Class: Thin::Request::Protocol76
- Inherits:
-
WebSocketHandler
- Object
- WebSocketHandler
- Thin::Request::Protocol76
- Defined in:
- lib/thin_extensions.rb
Instance Method Summary collapse
Methods inherited from WebSocketHandler
Constructor Details
This class inherits a constructor from Thin::Request::WebSocketHandler
Instance Method Details
#handshake ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/thin_extensions.rb', line 101 def handshake key1 = @request.env['HTTP_SEC_WEBSOCKET_KEY1'] value1 = number_from_key(key1) / spaces_in_key(key1) key2 = @request.env['HTTP_SEC_WEBSOCKET_KEY2'] value2 = number_from_key(key2) / spaces_in_key(key2) hash = Digest::MD5.digest(big_endian(value1) + big_endian(value2) + @request.body.read) upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" upgrade << "Upgrade: WebSocket\r\n" upgrade << "Connection: Upgrade\r\n" upgrade << "Sec-WebSocket-Origin: #{@request.env['HTTP_ORIGIN']}\r\n" upgrade << "Sec-WebSocket-Location: #{@request.websocket_url}\r\n\r\n" upgrade << hash upgrade end |