The hunchensocket Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

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.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Build Status 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:


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 hunchensocket

Author

capitaomorte <https://github.com/capitaomorte>

License

MIT

Description

WebSockets for Hunchentoot

Version

1.0.0

Dependencies
Source

hunchensocket.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 hunchensocket.asd

Location

hunchensocket.asd

Systems

hunchensocket (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 hunchensocket/package.lisp

Parent

hunchensocket (system)

Location

package.lisp

Packages

hunchensocket


Previous: , Up: Lisp files   [Contents][Index]

3.1.3 hunchensocket/hunchensocket.lisp

Dependency

package.lisp (file)

Parent

hunchensocket (system)

Location

hunchensocket.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 hunchensocket

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Previous: , Up: Exported definitions   [Contents][Index]

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
InitargValue
: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

Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Special variables

Special Variable: *websocket-socket*

The currently active WebSocket socket

Package

hunchensocket

Source

hunchensocket.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Previous: , Up: Internal definitions   [Contents][Index]

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)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   H   L  
Index Entry  Section

F
File, Lisp, hunchensocket.asd: The hunchensocket<dot>asd file
File, Lisp, hunchensocket/hunchensocket.lisp: The hunchensocket/hunchensocket<dot>lisp file
File, Lisp, hunchensocket/package.lisp: The hunchensocket/package<dot>lisp file

H
hunchensocket.asd: The hunchensocket<dot>asd file
hunchensocket/hunchensocket.lisp: The hunchensocket/hunchensocket<dot>lisp file
hunchensocket/package.lisp: The hunchensocket/package<dot>lisp file

L
Lisp File, hunchensocket.asd: The hunchensocket<dot>asd file
Lisp File, hunchensocket/hunchensocket.lisp: The hunchensocket/hunchensocket<dot>lisp file
Lisp File, hunchensocket/package.lisp: The hunchensocket/package<dot>lisp file

Jump to:   F   H   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
B   C   F   G   H   M   R   S   T   W  
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

Jump to:   (  
B   C   F   G   H   M   R   S   T   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
C   D   E   F   H   I   L   M   O   P   R   S   W  
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

Jump to:   *   +  
C   D   E   F   H   I   L   M   O   P   R   S   W  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   F   H   P   S   W  
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

Jump to:   C   F   H   P   S   W