The hunchensocket Reference Manual
Table of Contents
The hunchensocket Reference Manual
This is the hunchensocket Reference Manual, version 1.0.0,
generated automatically by Declt version 2.4 "Will Decker"
on Wed Jun 20 11:59:51 2018 GMT+0.
1 Introduction
Hunchensocket - WebSockets for Hunchentoot
Hunchensocket is a Common Lisp implementation of WebSockets realized
as an extension to [Edi Weitz'] edi excellent Hunchentoot web
server. Hunchensocket implements a compliant RFC6455 server.
Note that Alexander Kahl, the original author, has desactivated his
old version that only supports the drafts of the protocol.
Installation
Hunchensocket is in Quicklisp, so if you have that
setup just do (ql:quickload :hunchensocket)
.
Quicklisp is also good to use the trunk alongside with other
dependencies, perhaps to test a new feature or a bugfix:
$ cd ~/Source/Lisp/
$ git clone https://github.com/joaotavora/hunchensocket.git
(push "~/Source/Lisp" ql:*local-project-directories*)
(ql:quickload :hunchensocket) ;; use local hunchensocket and pull
;; dependencies from quicklisp
A chat server in 30 lines
First define classes for rooms and users. Make these subclasses of
websocket-resource
and websocket-client
.
(defpackage :my-chat (:use :cl))
(in-package :my-chat)
(defclass chat-room (hunchensocket:websocket-resource)
((name :initarg :name :initform (error "Name this room!") :reader name))
(:default-initargs :client-class 'user))
(defclass user (hunchensocket:websocket-client)
((name :initarg :user-agent :reader name :initform (error "Name this user!"))))
Define a list of rooms. Notice that
hunchensocket:*websocket-dispatch-table*
works just like
hunchentoot:*dispatch-table*
, but for websocket specific resources.
(defvar *chat-rooms* (list (make-instance 'chat-room :name "/bongo")
(make-instance 'chat-room :name "/fury")))
(defun find-room (request)
(find (hunchentoot:script-name request) *chat-rooms* :test #'string= :key #'name))
(pushnew 'find-room hunchensocket:*websocket-dispatch-table*)
OK, now a helper function and the dynamics of a chat room.
(defun broadcast (room message &rest args)
(loop for peer in (hunchensocket:clients room)
do (hunchensocket:send-text-message peer (apply #'format nil message args))))
(defmethod hunchensocket:client-connected ((room chat-room) user)
(broadcast room "~a has joined ~a" (name user) (name room)))
(defmethod hunchensocket:client-disconnected ((room chat-room) user)
(broadcast room "~a has left ~a" (name user) (name room)))
(defmethod hunchensocket:text-message-received ((room chat-room) user message)
(broadcast room "~a says ~a" (name user) message))
Finally, start the server. hunchensocket:websocket-acceptor
works
just like hunchentoot:acceptor
, and you can probably also use
hunchensocket:websocket-ssl-acceptor
.
(defvar *server* (make-instance 'hunchensocket:websocket-acceptor :port 12345))
(hunchentoot:start *server*)
Now open two browser windows on http://www.websocket.org/echo.html,
enter ws://localhost:12345/bongo
as the host and play around chatting with
yourself.
License
See COPYING for license details.
Design
Main sources of inspiration:
- Original implementation by Alexander Kahl, which cleverly hijacks
the Hunchentoot connection after the HTTP response and keeps the
connection alive, just like in a Head request.
- clws's API because it explicitly defines websocket "resources"
- Hunchentoot's's API because it uses CLOS
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 hunchensocket
- Author
capitaomorte <https://github.com/capitaomorte>
- License
MIT
- Description
WebSockets for Hunchentoot
- Version
1.0.0
- Dependencies
- hunchentoot
- alexandria
- ironclad
- flexi-streams
- chunga
- trivial-utf-8
- trivial-backtrace
- bordeaux-threads
- cl-fad
- Source
hunchensocket.asd (file)
- Components
-
3 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
3.1 Lisp
3.1.1 hunchensocket.asd
- Location
hunchensocket.asd
- Systems
hunchensocket (system)
3.1.2 hunchensocket/package.lisp
- Parent
hunchensocket (system)
- Location
package.lisp
- Packages
hunchensocket
3.1.3 hunchensocket/hunchensocket.lisp
- Dependency
package.lisp (file)
- Parent
hunchensocket (system)
- Location
hunchensocket.lisp
- Exported Definitions
-
- Internal Definitions
-
4 Packages
Packages are listed by definition order.
4.1 hunchensocket
- Source
package.lisp (file)
- Use List
- bordeaux-threads
- trivial-utf-8
- flexi-streams
- cl-ppcre
- hunchentoot
- alexandria.0.dev
- common-lisp
- Exported Definitions
-
- Internal Definitions
-
5 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
5.1 Exported definitions
5.1.1 Special variables
- Special Variable: *websocket-dispatch-table*
-
List of handler closures that will be queried for new connections
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.1.2 Functions
- Function: close-connection CLIENT &key DATA STATUS REASON
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: send-binary-message CLIENT MESSAGE
-
MESSAGE is an array of octets
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: send-text-message CLIENT MESSAGE
-
MESSAGE is a string
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.1.3 Generic functions
- Generic Function: binary-message-received RESOURCE CLIENT BINARY
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Generic Function: check-message RESOURCE CLIENT OPCODE FRAGMENT-LENGTH TOTAL-LENGTH
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Methods
- Method: check-message (RESOURCE websocket-resource) (CLIENT websocket-client) OPCODE LENGTH TOTAL
-
- Method: check-message (RESOURCE websocket-resource) (CLIENT websocket-client) (OPCODE (eql 2)) LENGTH TOTAL
-
- Generic Function: client-connected RESOURCE CLIENT
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Methods
- Method: client-connected RESOURCE CLIENT
-
- Generic Function: client-disconnected RESOURCE CLIENT
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Methods
- Method: client-disconnected RESOURCE CLIENT
-
- Generic Function: client-request OBJECT
-
- Package
hunchensocket
- Methods
- Method: client-request (WEBSOCKET-CLIENT websocket-client)
-
automatically generated reader method
- Source
hunchensocket.lisp (file)
- Generic Function: clients OBJECT
-
- Package
hunchensocket
- Methods
- Method: clients (WEBSOCKET-RESOURCE websocket-resource)
-
automatically generated reader method
- Source
hunchensocket.lisp (file)
- Generic Function: text-message-received RESOURCE CLIENT MESSAGE
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Generic Function: websocket-resource OBJECT
-
- Generic Function: (setf websocket-resource) NEW-VALUE OBJECT
-
- Package
hunchensocket
- Methods
- Method: websocket-resource (WEBSOCKET-REQUEST websocket-request)
-
- Method: (setf websocket-resource) NEW-VALUE (WEBSOCKET-REQUEST websocket-request)
-
Message handler of the current request
- Source
hunchensocket.lisp (file)
5.1.4 Classes
- Class: websocket-acceptor ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
acceptor (class)
- Direct subclasses
websocket-ssl-acceptor (class)
- Direct methods
-
- Direct slots
- Slot: websocket-timeout
-
Custom WebSocket timeout override.
- Initargs
:websocket-timeout
- Initform
300
- Readers
websocket-timeout (generic function)
- Writers
(setf websocket-timeout) (generic function)
- Direct Default Initargs
Initarg | Value |
:request-class | (quote hunchensocket::websocket-request) |
:reply-class | (quote hunchensocket::websocket-reply) |
- Class: websocket-client ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: input-stream
-
- Initargs
hunchensocket::input-stream
- Initform
(error "must make clients with input streams")
- Slot: output-stream
-
- Initargs
hunchensocket::output-stream
- Initform
(error "must make clients with output streams")
- Slot: request
-
- Initargs
hunchentoot:request
- Initform
(error "must make clients with requests")
- Readers
client-request (generic function)
- Slot: write-lock
-
- Initform
(bordeaux-threads:make-lock)
- Slot: state
-
- Initform
:disconnected
- Slot: pending-fragments
-
- Slot: pending-opcode
-
- Class: websocket-resource ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: clients
-
- Readers
clients (generic function)
- Slot: client-class
-
- Initargs
:client-class
- Initform
(quote hunchensocket:websocket-client)
- Slot: lock
-
- Initform
(bordeaux-threads:make-lock)
- Class: websocket-ssl-acceptor ()
-
Special WebSocket SSL acceptor
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
-
5.2 Internal definitions
5.2.1 Constants
- Constant: +binary-frame+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +connection-close+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +continuation-frame+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +ping+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +pong+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +text-frame+
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Constant: +websocket-magic-key+
-
Fixed magic WebSocket UUIDv4 key use in handshakes
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.2.2 Special variables
- Special Variable: *websocket-socket*
-
The currently active WebSocket socket
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.2.3 Macros
- Macro: with-new-client-for-resource (CLIENT-SYM &key INPUT-STREAM OUTPUT-STREAM RESOURCE REQUEST) &body BODY
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.2.4 Functions
- Function: call-with-new-client-for-resource CLIENT RESOURCE FN
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: control-frame-p OPCODE
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: find-websocket-resource REQUEST
-
Find the resource for REQUEST by looking up *WEBSOCKET-DISPATCH-TABLE*.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: handle-frame RESOURCE CLIENT FRAME
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: mask-unmask DATA MASKING-KEY
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-application-data STREAM FRAME
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-frame STREAM &key READ-PAYLOAD-P
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-frame-from-client CLIENT
-
Read a text or binary message from CLIENT.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-handle-loop RESOURCE CLIENT &optional VERSION
-
Implements the main WebSocket loop for supported protocol
versions. Framing is handled automatically, CLIENT handles the actual
payloads.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-n-bytes-into-sequence STREAM N
-
Return an array of N bytes read from stream
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: read-unsigned-big-endian STREAM N
-
Read N bytes from stream and return the big-endian number
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: send-frame CLIENT OPCODE DATA
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: websocket-error STATUS FORMAT-CONTROL &rest FORMAT-ARGUMENTS
-
Signals an error of type HUNCHENTOOT-SIMPLE-ERROR with the provided
format control and arguments.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: websocket-uri REQUEST HOST &optional SSL
-
Form WebSocket URL (ws:// or wss://) URL.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Function: write-frame STREAM OPCODE &optional DATA
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
5.2.5 Generic functions
- Generic Function: frame-data OBJECT
-
- Generic Function: (setf frame-data) NEW-VALUE OBJECT
-
- Package
hunchensocket
- Methods
- Method: frame-data (FRAME frame)
-
automatically generated reader method
- Source
hunchensocket.lisp (file)
- Method: (setf frame-data) NEW-VALUE (FRAME frame)
-
automatically generated writer method
- Source
hunchensocket.lisp (file)
- Generic Function: frame-opcode OBJECT
-
- Generic Function: (setf frame-opcode) NEW-VALUE OBJECT
-
- Package
hunchensocket
- Methods
- Method: frame-opcode (FRAME frame)
-
automatically generated reader method
- Source
hunchensocket.lisp (file)
- Method: (setf frame-opcode) NEW-VALUE (FRAME frame)
-
automatically generated writer method
- Source
hunchensocket.lisp (file)
- Generic Function: frame-payload-length OBJECT
-
- Generic Function: (setf frame-payload-length) NEW-VALUE OBJECT
-
- Package
hunchensocket
- Methods
- Method: frame-payload-length (FRAME frame)
-
automatically generated reader method
- Source
hunchensocket.lisp (file)
- Method: (setf frame-payload-length) NEW-VALUE (FRAME frame)
-
automatically generated writer method
- Source
hunchensocket.lisp (file)
- Generic Function: handle-handshake ACCEPTOR REQUEST REPLY
-
- Package
hunchensocket
- Methods
- Method: handle-handshake (ACCEPTOR websocket-acceptor) REQUEST REPLY
-
Analyse REQUEST for WebSocket handshake.
Destructively modify REPLY accordingly in case of success, exit
non-locally with an error instead.
- Source
hunchensocket.lisp (file)
- Generic Function: websocket-error-status CONDITION
-
- Package
hunchensocket
- Methods
- Method: websocket-error-status (CONDITION websocket-error)
-
- Source
hunchensocket.lisp (file)
- Generic Function: websocket-timeout OBJECT
-
- Generic Function: (setf websocket-timeout) NEW-VALUE OBJECT
-
- Package
hunchensocket
- Methods
- Method: websocket-timeout (WEBSOCKET-ACCEPTOR websocket-acceptor)
-
- Method: (setf websocket-timeout) NEW-VALUE (WEBSOCKET-ACCEPTOR websocket-acceptor)
-
Custom WebSocket timeout override.
- Source
hunchensocket.lisp (file)
5.2.6 Conditions
- Condition: websocket-error ()
-
Superclass for all errors related to Websocket.
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
simple-error (condition)
- Direct methods
websocket-error-status (method)
- Direct slots
- Slot: error-status
-
- Initargs
:status
- Readers
websocket-error-status (generic function)
5.2.7 Classes
- Class: frame ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: opcode
-
- Initargs
:opcode
- Readers
frame-opcode (generic function)
- Writers
(setf frame-opcode) (generic function)
- Slot: data
-
- Readers
frame-data (generic function)
- Writers
(setf frame-data) (generic function)
- Slot: finp
-
- Initargs
:finp
- Slot: payload-length
-
- Initargs
:payload-length
- Readers
frame-payload-length (generic function)
- Writers
(setf frame-payload-length) (generic function)
- Slot: masking-key
-
- Initargs
:masking-key
- Class: websocket-reply ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
reply (class)
- Direct methods
initialize-instance (method)
- Class: websocket-request ()
-
- Package
hunchensocket
- Source
hunchensocket.lisp (file)
- Direct superclasses
request (class)
- Direct methods
- acceptor-dispatch-request (method)
- process-request (method)
- websocket-resource (method)
- websocket-resource (method)
- Direct slots
- Slot: handler
-
Message handler of the current request
- Readers
websocket-resource (generic function)
- Writers
(setf websocket-resource) (generic function)
Appendix A Indexes
A.1 Concepts
A.2 Functions
| Index Entry | | Section |
|
( | | |
| (setf frame-data) : | | Internal generic functions |
| (setf frame-data) : | | Internal generic functions |
| (setf frame-opcode) : | | Internal generic functions |
| (setf frame-opcode) : | | Internal generic functions |
| (setf frame-payload-length) : | | Internal generic functions |
| (setf frame-payload-length) : | | Internal generic functions |
| (setf websocket-resource) : | | Exported generic functions |
| (setf websocket-resource) : | | Exported generic functions |
| (setf websocket-timeout) : | | Internal generic functions |
| (setf websocket-timeout) : | | Internal generic functions |
|
B | | |
| binary-message-received : | | Exported generic functions |
|
C | | |
| call-with-new-client-for-resource : | | Internal functions |
| check-message : | | Exported generic functions |
| check-message : | | Exported generic functions |
| check-message : | | Exported generic functions |
| client-connected : | | Exported generic functions |
| client-connected : | | Exported generic functions |
| client-disconnected : | | Exported generic functions |
| client-disconnected : | | Exported generic functions |
| client-request : | | Exported generic functions |
| client-request : | | Exported generic functions |
| clients : | | Exported generic functions |
| clients : | | Exported generic functions |
| close-connection : | | Exported functions |
| control-frame-p : | | Internal functions |
|
F | | |
| find-websocket-resource : | | Internal functions |
| frame-data : | | Internal generic functions |
| frame-data : | | Internal generic functions |
| frame-opcode : | | Internal generic functions |
| frame-opcode : | | Internal generic functions |
| frame-payload-length : | | Internal generic functions |
| frame-payload-length : | | Internal generic functions |
| Function, call-with-new-client-for-resource : | | Internal functions |
| Function, close-connection : | | Exported functions |
| Function, control-frame-p : | | Internal functions |
| Function, find-websocket-resource : | | Internal functions |
| Function, handle-frame : | | Internal functions |
| Function, mask-unmask : | | Internal functions |
| Function, read-application-data : | | Internal functions |
| Function, read-frame : | | Internal functions |
| Function, read-frame-from-client : | | Internal functions |
| Function, read-handle-loop : | | Internal functions |
| Function, read-n-bytes-into-sequence : | | Internal functions |
| Function, read-unsigned-big-endian : | | Internal functions |
| Function, send-binary-message : | | Exported functions |
| Function, send-frame : | | Internal functions |
| Function, send-text-message : | | Exported functions |
| Function, websocket-error : | | Internal functions |
| Function, websocket-uri : | | Internal functions |
| Function, write-frame : | | Internal functions |
|
G | | |
| Generic Function, (setf frame-data) : | | Internal generic functions |
| Generic Function, (setf frame-opcode) : | | Internal generic functions |
| Generic Function, (setf frame-payload-length) : | | Internal generic functions |
| Generic Function, (setf websocket-resource) : | | Exported generic functions |
| Generic Function, (setf websocket-timeout) : | | Internal generic functions |
| Generic Function, binary-message-received : | | Exported generic functions |
| Generic Function, check-message : | | Exported generic functions |
| Generic Function, client-connected : | | Exported generic functions |
| Generic Function, client-disconnected : | | Exported generic functions |
| Generic Function, client-request : | | Exported generic functions |
| Generic Function, clients : | | Exported generic functions |
| Generic Function, frame-data : | | Internal generic functions |
| Generic Function, frame-opcode : | | Internal generic functions |
| Generic Function, frame-payload-length : | | Internal generic functions |
| Generic Function, handle-handshake : | | Internal generic functions |
| Generic Function, text-message-received : | | Exported generic functions |
| Generic Function, websocket-error-status : | | Internal generic functions |
| Generic Function, websocket-resource : | | Exported generic functions |
| Generic Function, websocket-timeout : | | Internal generic functions |
|
H | | |
| handle-frame : | | Internal functions |
| handle-handshake : | | Internal generic functions |
| handle-handshake : | | Internal generic functions |
|
M | | |
| Macro, with-new-client-for-resource : | | Internal macros |
| mask-unmask : | | Internal functions |
| Method, (setf frame-data) : | | Internal generic functions |
| Method, (setf frame-opcode) : | | Internal generic functions |
| Method, (setf frame-payload-length) : | | Internal generic functions |
| Method, (setf websocket-resource) : | | Exported generic functions |
| Method, (setf websocket-timeout) : | | Internal generic functions |
| Method, check-message : | | Exported generic functions |
| Method, check-message : | | Exported generic functions |
| Method, client-connected : | | Exported generic functions |
| Method, client-disconnected : | | Exported generic functions |
| Method, client-request : | | Exported generic functions |
| Method, clients : | | Exported generic functions |
| Method, frame-data : | | Internal generic functions |
| Method, frame-opcode : | | Internal generic functions |
| Method, frame-payload-length : | | Internal generic functions |
| Method, handle-handshake : | | Internal generic functions |
| Method, websocket-error-status : | | Internal generic functions |
| Method, websocket-resource : | | Exported generic functions |
| Method, websocket-timeout : | | Internal generic functions |
|
R | | |
| read-application-data : | | Internal functions |
| read-frame : | | Internal functions |
| read-frame-from-client : | | Internal functions |
| read-handle-loop : | | Internal functions |
| read-n-bytes-into-sequence : | | Internal functions |
| read-unsigned-big-endian : | | Internal functions |
|
S | | |
| send-binary-message : | | Exported functions |
| send-frame : | | Internal functions |
| send-text-message : | | Exported functions |
|
T | | |
| text-message-received : | | Exported generic functions |
|
W | | |
| websocket-error : | | Internal functions |
| websocket-error-status : | | Internal generic functions |
| websocket-error-status : | | Internal generic functions |
| websocket-resource : | | Exported generic functions |
| websocket-resource : | | Exported generic functions |
| websocket-timeout : | | Internal generic functions |
| websocket-timeout : | | Internal generic functions |
| websocket-uri : | | Internal functions |
| with-new-client-for-resource : | | Internal macros |
| write-frame : | | Internal functions |
|
A.3 Variables
| Index Entry | | Section |
|
* | | |
| *websocket-dispatch-table* : | | Exported special variables |
| *websocket-socket* : | | Internal special variables |
|
+ | | |
| +binary-frame+ : | | Internal constants |
| +connection-close+ : | | Internal constants |
| +continuation-frame+ : | | Internal constants |
| +ping+ : | | Internal constants |
| +pong+ : | | Internal constants |
| +text-frame+ : | | Internal constants |
| +websocket-magic-key+ : | | Internal constants |
|
C | | |
| client-class : | | Exported classes |
| clients : | | Exported classes |
| Constant, +binary-frame+ : | | Internal constants |
| Constant, +connection-close+ : | | Internal constants |
| Constant, +continuation-frame+ : | | Internal constants |
| Constant, +ping+ : | | Internal constants |
| Constant, +pong+ : | | Internal constants |
| Constant, +text-frame+ : | | Internal constants |
| Constant, +websocket-magic-key+ : | | Internal constants |
|
D | | |
| data : | | Internal classes |
|
E | | |
| error-status : | | Internal conditions |
|
F | | |
| finp : | | Internal classes |
|
H | | |
| handler : | | Internal classes |
|
I | | |
| input-stream : | | Exported classes |
|
L | | |
| lock : | | Exported classes |
|
M | | |
| masking-key : | | Internal classes |
|
O | | |
| opcode : | | Internal classes |
| output-stream : | | Exported classes |
|
P | | |
| payload-length : | | Internal classes |
| pending-fragments : | | Exported classes |
| pending-opcode : | | Exported classes |
|
R | | |
| request : | | Exported classes |
|
S | | |
| Slot, client-class : | | Exported classes |
| Slot, clients : | | Exported classes |
| Slot, data : | | Internal classes |
| Slot, error-status : | | Internal conditions |
| Slot, finp : | | Internal classes |
| Slot, handler : | | Internal classes |
| Slot, input-stream : | | Exported classes |
| Slot, lock : | | Exported classes |
| Slot, masking-key : | | Internal classes |
| Slot, opcode : | | Internal classes |
| Slot, output-stream : | | Exported classes |
| Slot, payload-length : | | Internal classes |
| Slot, pending-fragments : | | Exported classes |
| Slot, pending-opcode : | | Exported classes |
| Slot, request : | | Exported classes |
| Slot, state : | | Exported classes |
| Slot, websocket-timeout : | | Exported classes |
| Slot, write-lock : | | Exported classes |
| Special Variable, *websocket-dispatch-table* : | | Exported special variables |
| Special Variable, *websocket-socket* : | | Internal special variables |
| state : | | Exported classes |
|
W | | |
| websocket-timeout : | | Exported classes |
| write-lock : | | Exported classes |
|
A.4 Data types
| Index Entry | | Section |
|
C | | |
| Class, frame : | | Internal classes |
| Class, websocket-acceptor : | | Exported classes |
| Class, websocket-client : | | Exported classes |
| Class, websocket-reply : | | Internal classes |
| Class, websocket-request : | | Internal classes |
| Class, websocket-resource : | | Exported classes |
| Class, websocket-ssl-acceptor : | | Exported classes |
| Condition, websocket-error : | | Internal conditions |
|
F | | |
| frame : | | Internal classes |
|
H | | |
| hunchensocket : | | The hunchensocket system |
| hunchensocket : | | The hunchensocket package |
|
P | | |
| Package, hunchensocket : | | The hunchensocket package |
|
S | | |
| System, hunchensocket : | | The hunchensocket system |
|
W | | |
| websocket-acceptor : | | Exported classes |
| websocket-client : | | Exported classes |
| websocket-error : | | Internal conditions |
| websocket-reply : | | Internal classes |
| websocket-request : | | Internal classes |
| websocket-resource : | | Exported classes |
| websocket-ssl-acceptor : | | Exported classes |
|