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