Versions in this module Expand all Collapse all v0 v0.3.1 Sep 2, 2020 v0.3.0 Aug 23, 2020 v0.2.9 Aug 23, 2020 v0.2.8 Aug 23, 2020 v0.2.7 Aug 18, 2020 v0.2.6 Aug 12, 2020 v0.2.5 Aug 12, 2020 v0.2.4 Jun 3, 2020 v0.2.3 Jun 3, 2020 v0.2.2 May 14, 2020 v0.2.1 Apr 30, 2020 v0.2.0 Apr 10, 2020 Changes in this version + const MaxControlFramePayloadSize + const MaxHeaderSize + var ErrHandshakeBadConnection = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeBadHost = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeBadMethod = RejectConnectionError(RejectionStatus(http.StatusMethodNotAllowed), ...) + var ErrHandshakeBadProtocol = RejectConnectionError(RejectionStatus(http.StatusHTTPVersionNotSupported), ...) + var ErrHandshakeBadSecAccept = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeBadSecKey = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeBadSecVersion = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeBadUpgrade = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrHandshakeUpgradeRequired = RejectConnectionError(RejectionStatus(http.StatusUpgradeRequired), ...) + var ErrMalformedRequest = RejectConnectionError(RejectionStatus(http.StatusBadRequest), ...) + var ErrProtocolInvalidUTF8 = ProtocolError("invalid utf8 sequence in close reason") + var ErrProtocolStatusCodeApplicationLevel = ProtocolError("status code is only application level") + var ErrProtocolStatusCodeNoMeaning = ProtocolError("status code has no meaning yet") + var ErrProtocolStatusCodeNotInUse = ProtocolError("status code is not in use") + var ErrProtocolStatusCodeUnknown = ProtocolError("status code is not defined in spec") + var StatusRangeApplication = StatusCodeRange + var StatusRangeNotInUse = StatusCodeRange + var StatusRangePrivate = StatusCodeRange + var StatusRangeProtocol = StatusCodeRange + func Cipher(payload []byte, mask [4]byte, offset int) + func RejectConnectionError(options ...RejectOption) error + type Frame struct + Header Header + Payload []byte + func NewFrame(op OpCode, fin bool, p []byte) *Frame + type Handshake struct + Extensions []httphead.Option + Protocol string + type HandshakeHeader interface + type HandshakeHeaderBytes []byte + func (b HandshakeHeaderBytes) WriteTo(w io.Writer) (int64, error) + type HandshakeHeaderFunc func(io.Writer) (int64, error) + func (f HandshakeHeaderFunc) WriteTo(w io.Writer) (int64, error) + type HandshakeHeaderHTTP http.Header + func (h HandshakeHeaderHTTP) WriteTo(w io.Writer) (int64, error) + type HandshakeHeaderString string + func (s HandshakeHeaderString) WriteTo(w io.Writer) (int64, error) + type Header struct + Fin bool + Length int64 + Mask [4]byte + Masked bool + OpCode OpCode + Rsv byte + func (h Header) Rsv1() bool + func (h Header) Rsv2() bool + func (h Header) Rsv3() bool + type MessageType int + const MessageBinary + const MessageText + type OpCode byte + const OpBinary + const OpClose + const OpContinuation + const OpPing + const OpPong + const OpText + func (c OpCode) IsControl() bool + func (c OpCode) IsData() bool + func (c OpCode) IsReserved() bool + type ProtocolError string + func (p ProtocolError) Error() string + type RejectOption func(*rejectConnectionError) + func RejectionHeader(h HandshakeHeader) RejectOption + func RejectionReason(reason string) RejectOption + func RejectionStatus(code int) RejectOption + type StatusCode uint16 + const StatusAbnormalClosure + const StatusGoingAway + const StatusInternalServerError + const StatusInvalidFramePayloadData + const StatusMandatoryExt + const StatusMessageTooBig + const StatusNoMeaningYet + const StatusNoStatusRcvd + const StatusNormalClosure + const StatusPolicyViolation + const StatusProtocolError + const StatusTLSHandshake + const StatusUnsupportedData + func (s StatusCode) Empty() bool + func (s StatusCode) In(r StatusCodeRange) bool + func (s StatusCode) IsApplicationSpec() bool + func (s StatusCode) IsNotUsed() bool + func (s StatusCode) IsPrivateSpec() bool + func (s StatusCode) IsProtocolDefined() bool + func (s StatusCode) IsProtocolReserved() bool + func (s StatusCode) IsProtocolSpec() bool + type StatusCodeRange struct + Max StatusCode + Min StatusCode + type Upgrader struct + Extension func(httphead.Option) bool + ExtensionCustom func([]byte, []httphead.Option) ([]httphead.Option, bool) + Header HandshakeHeader + OnBeforeUpgrade func() (header HandshakeHeader, err error) + OnHeader func(key, value []byte) error + OnHost func(host []byte) error + OnRequest func(uri []byte) error + Protocol func([]byte) bool + ProtocolCustom func([]byte) (string, bool) + func (u *Upgrader) Upgrade(in *ringbuffer.RingBuffer) (out []byte, hs Handshake, err error)