module EventMachine::WebSocket::Handshake75
Public Class Methods
handshake(headers, path, secure)
click to toggle source
# File lib/em-websocket/handshake75.rb, line 4 def self.handshake(headers, path, secure) scheme = (secure ? "wss" : "ws") location = "#{scheme}://#{headers['host']}#{path}" upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" upgrade << "Upgrade: WebSocket\r\n" upgrade << "Connection: Upgrade\r\n" upgrade << "WebSocket-Origin: #{headers['origin']}\r\n" upgrade << "WebSocket-Location: #{location}\r\n" if protocol = headers['sec-websocket-protocol'] validate_protocol!(protocol) upgrade << "Sec-WebSocket-Protocol: #{protocol}\r\n" end upgrade << "\r\n" return upgrade end
validate_protocol!(protocol)
click to toggle source
# File lib/em-websocket/handshake75.rb, line 22 def self.validate_protocol!(protocol) raise HandshakeError, "Invalid WebSocket-Protocol: empty" if protocol.empty? # TODO: Validate characters end