Sha256: d17a96b4aec9761b13f472552430469a63e543ec5bec171dd298809c5276dc97
Contents?: true
Size: 913 Bytes
Versions: 7
Compression:
Stored size: 913 Bytes
Contents
module EventMachine module WebSocket module Handshake75 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 def self.validate_protocol!(protocol) raise HandshakeError, "Invalid WebSocket-Protocol: empty" if protocol.empty? # TODO: Validate characters end end end end
Version data entries
7 entries across 7 versions & 2 rubygems