class WebSocket::Handshake::Handler::Server04
Public Instance Methods
valid?()
click to toggle source
@see WebSocket::Handshake::Base#valid?
Calls superclass method
WebSocket::Handshake::Handler::Base#valid?
# File lib/websocket/handshake/handler/server04.rb, line 9 def valid? super && verify_key end
Private Instance Methods
handshake_keys()
click to toggle source
@see WebSocket::Handshake::Handler::Base#handshake_keys
# File lib/websocket/handshake/handler/server04.rb, line 21 def handshake_keys [ %w(Upgrade websocket), %w(Connection Upgrade), ['Sec-WebSocket-Accept', signature] ] end
header_line()
click to toggle source
@see WebSocket::Handshake::Handler::Base#header_line
# File lib/websocket/handshake/handler/server04.rb, line 16 def header_line 'HTTP/1.1 101 Switching Protocols' end
key()
click to toggle source
# File lib/websocket/handshake/handler/server04.rb, line 42 def key @handshake.headers['sec-websocket-key'] end
signature()
click to toggle source
Signature of response, created from client request Sec-WebSocket-Key @return [String] signature
# File lib/websocket/handshake/handler/server04.rb, line 31 def signature return unless key string_to_sign = "#{key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11" Base64.encode64(Digest::SHA1.digest(string_to_sign)).chomp end
verify_key()
click to toggle source
# File lib/websocket/handshake/handler/server04.rb, line 37 def verify_key fail WebSocket::Error::Handshake::InvalidAuthentication unless key true end