Versions in this module Expand all Collapse all v0 v0.0.2 Jul 9, 2026 Changes in this version + var ErrExtensionNegotiationFailed = errors.New("websocket: extension negotiation failed") + var ErrPacketControlFrameFragmented = errors.New("websocket: fragmented control frame") + var ErrPacketControlFrameTooLarge = errors.New("websocket: control frame too large") + var ErrPacketIncomplete = errors.New("websocket: incomplete packet") + var ErrPacketInvalidOperation = errors.New("websocket: invalid opcode") + var ErrPacketReservedBits = errors.New("websocket: reserved bits set without extension") + var ErrPacketTooLarge = errors.New("websocket: packet too large") + var ErrServerClosed = errors.New("websocket: server closed") + type Client struct + Extensions []Extension + Socket *WebSocket + TLSConfig *tls.Config + URL *net_url.URL + func NewClient(raw_url string) (*Client, error) + func (client *Client) Connect() error + type Extension interface + Accept func(response map[string]string) bool + Compress func(payload []byte) ([]byte, error) + Decompress func(payload []byte) ([]byte, error) + Name func() string + Negotiate func(offer map[string]string) (agreed map[string]string, accepted bool) + Parameters func() map[string]string + type Handler func(*WebSocket) + type Operation byte + const OperationBinary + const OperationClose + const OperationContinue + const OperationPing + const OperationPong + const OperationText + func (operation Operation) IsControl() bool + func (operation Operation) IsValid() bool + type Packet struct + Final bool + Mask []byte + Operation Operation + Payload []byte + Reserved [3]bool + Type SocketType + func ParsePacket(frame []byte) (Packet, error) + func (packet *Packet) Marshal() ([]byte, error) + func (packet *Packet) Unmarshal(frame []byte) error + type Protocols []string + func (protocols Protocols) Negotiate(requested string) string + type Server struct + Addr string + BaseContext func(net.Listener) context.Context + ConnContext func(context.Context, net.Conn) context.Context + ErrorLog *log.Logger + Extensions []Extension + Handler Handler + Protocols *Protocols + Sockets []*WebSocket + TLSConfig *tls.Config + TLSNextProto map[string]func(*Server, *tls.Conn, Handler) + func (server *Server) AddSocket(websocket *WebSocket) + func (server *Server) Close() error + func (server *Server) Listen() error + func (server *Server) RegisterOnShutdown(callback func()) + func (server *Server) RemoveSocket(websocket *WebSocket) + func (server *Server) Serve(listener net.Listener) error + func (server *Server) ServeTLS(listener net.Listener, cert_file string, key_file string) error + func (server *Server) Shutdown(ctx context.Context) error + func (server *Server) Upgrade(response http.ResponseWriter, request *http.Request) (*WebSocket, error) + type SocketType string + const SocketTypeClient + const SocketTypeServer + type Status uint16 + const StatusAbnormalClosure + const StatusExtensionRequired + const StatusGoingAway + const StatusInternalError + const StatusInvalidPayload + const StatusMessageTooBig + const StatusNoStatusReceived + const StatusNormalClosure + const StatusPolicyViolation + const StatusProtocolError + const StatusUnsupportedData + type WebSocket struct + Connection net.Conn + Extensions []Extension + Frames []Packet + OnClose func() + OnMessage func([]byte) + Server *Server + Type SocketType + func NewWebSocket(connection net.Conn, server *Server) *WebSocket + func (websocket *WebSocket) Close(status Status, reason string) + func (websocket *WebSocket) Destroy() + func (websocket *WebSocket) Init() + func (websocket *WebSocket) Send(data []byte) error + func (websocket *WebSocket) SendBinary(data []byte) error + func (websocket *WebSocket) SendPacket(packet Packet) error