lib/websocket/handshake/base.rb in websocket-1.2.9 vs lib/websocket/handshake/base.rb in websocket-1.2.10

- old
+ new

@@ -5,11 +5,11 @@ # @abstract Subclass and override to implement custom handshakes class Base include ExceptionHandler include NiceInspect - attr_reader :host, :port, :path, :query, + attr_reader :host, :path, :query, :state, :version, :secure, :headers, :protocols # Initialize new WebSocket Handshake and set it's state to :new def initialize(args = {}) @@ -64,17 +64,31 @@ # @return [String] String if some data are available. Nil otherwise def leftovers (@leftovers.to_s.split("\n", reserved_leftover_lines + 1)[reserved_leftover_lines] || '').strip end + # Return default port for protocol (80 for ws, 443 for wss) + def default_port + secure ? 443 : 80 + end + + # Check if provided port is a default one + def default_port? + port == default_port + end + + def port + @port || default_port + end + # URI of request. # @return [String] Full URI with protocol # @example # @handshake.uri #=> "ws://example.com/path?query=true" def uri uri = String.new(secure ? 'wss://' : 'ws://') uri << host - uri << ":#{port}" if port + uri << ":#{port}" unless default_port? uri << path uri << "?#{query}" if query uri end