#lang scribble/doc
@(require
  scribble/manual
  (for-label "../url.ss"))

@title[#:tag "url" #:style '(toc)]{URLs}

@defmodule[(planet "url.ss" ("murphy" "websockets.plt" 1 0))]{

  This module provides convenient accessors for URL structures that represent
  WebSocket URLs. It also reexports all URL structure functionality and the
  @scheme[url->string] and @scheme[string->url] procedures.
  
}

@defproc[(ws-url? [v any/c]) any]{

  Checks whether the given value is a WebSocket URL. The result
  is @scheme[#t] iff @scheme[v] is a @scheme[url] structure, has the scheme
  @scheme["ws"] or @scheme["wss"], is absolute and contains no fragment.
  
}

@defproc[(ws-url-secure? [url ws-url?]) any]{

  Checks whether the given WebSocket URL specifies a secure connection.
  
}

@defproc[(ws-url-default-port [url ws-url?]) natural-number/c]{

  Determines the default TCP port that would be used to connect to the given
  WebSocket @scheme[url] if it contained no explicitly specified port number.
  
}

@defproc[(ws-url-port [url ws-url?]) natural-number/c]{

  Determines the TCP port that should be used to connect to the given
  WebSocket @scheme[url].
  
}

@defproc[(ws-url-resource [url ws-url?]) string?]{

  Extracts the resource part of the given WebSocket @scheme[url] as a string.
  
}
