Documentation ¶
Index ¶
- Variables
- func Decompress(buf []byte) (*bpool.Buff, error)
- func NewUpGrader() *upgrader
- type Config
- type Conn
- func (c *Conn) EnableWriteCompression(enable bool)
- func (c *Conn) OnClose()
- func (c *Conn) Read(data []byte) error
- func (c *Conn) SetCompressionLevel(level int) error
- func (c *Conn) SetHandler(h MessageHandler)
- func (c *Conn) Write(data []byte) (int, error)
- func (c *Conn) WriteMessage(messageType MessageType, data []byte) error
- type ErrorType
- type MessageHandler
- type MessageType
- type WsError
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrUpgradeTokenNotFound . ErrUpgradeTokenNotFound = errors.New("websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header") // ErrUpgradeMethodIsGet . ErrUpgradeMethodIsGet = errors.New("websocket: the client is not using the websocket protocol: request method is not GET") // ErrUpgradeInvalidWebsocketVersion . ErrUpgradeInvalidWebsocketVersion = errors.New("websocket: unsupported version: 13 not found in 'Sec-Websocket-Version' header") // ErrUpgradeUnsupportedExtensions . ErrUpgradeUnsupportedExtensions = errors.New("websocket: application specific 'Sec-WebSocket-Extensions' headers are unsupported") // ErrUpgradeOriginNotAllowed . ErrUpgradeOriginNotAllowed = errors.New("websocket: request origin not allowed by upgrader.CheckOrigin") // ErrUpgradeMissingWebsocketKey . ErrUpgradeMissingWebsocketKey = errors.New("websocket: not a websocket handshake: 'Sec-WebSocket-Key' header is missing or blank") // ErrUpgradeNotHijacker . ErrUpgradeNotHijacker = errors.New("websocket: response does not implement http.Hijacker") // ErrInvalidControlFrame . ErrInvalidControlFrame = errors.New("websocket: invalid control frame") // ErrInvalidWriteCalling . ErrInvalidWriteCalling = errors.New("websocket: invalid write calling, should call WriteMessage instead") // ErrReserveBitSet . ErrReserveBitSet = errors.New("websocket: reserved bit set it frame") // ErrReservedOpcodeSet . ErrReservedOpcodeSet = errors.New("websocket: reserved opcode received") // ErrControlMessageFragmented . ErrControlMessageFragmented = errors.New("websocket: control messages must not be fragmented") // ErrFragmentsShouldNotHaveBinaryOrTextOpcode . ErrFragmentsShouldNotHaveBinaryOrTextOpcode = errors.New("websocket: fragments should not have opcode of text or binary") // ErrInvalidCloseCode . ErrInvalidCloseCode = errors.New("websocket: invalid close code") // ErrBadHandshake . ErrBadHandshake = errors.New("websocket: bad handshake") // ErrInvalidCompression . ErrInvalidCompression = errors.New("websocket: invalid compression negotiation") // ErrMalformedURL . ErrMalformedURL = errors.New("malformed ws or wss URL") // ErrMessageTooLarge. ErrMessageTooLarge = errors.New("message exceeds the configured limit") )
View Source
var (
MaxWebsocketFramePayloadSize = 16 * 1024 // 16k
)
Functions ¶
Types ¶
type Config ¶
type Config struct { ReadLimit int MaxMessageSize int CompressionLevel int HandshakeTimeout time.Duration EnableCompression bool // 是否开启压缩,并且告知客户端 EnableWriteCompression bool // 是否对写数据进行压缩,通常不需要压缩 Origin bool // 是否检查域名 }
func DefaultConfig ¶
func DefaultConfig() *Config
type Conn ¶
Conn .
func (*Conn) EnableWriteCompression ¶
EnableWriteCompression .
func (*Conn) SetCompressionLevel ¶
SetCompressionLevel .
func (*Conn) SetHandler ¶
func (c *Conn) SetHandler(h MessageHandler)
func (*Conn) WriteMessage ¶
func (c *Conn) WriteMessage(messageType MessageType, data []byte) error
WriteMessage .
type MessageHandler ¶
type MessageHandler interface {
Cast(msg interface{})
}
type MessageType ¶
type MessageType int8
MessageType .
const ( // FragmentMessage . FragmentMessage MessageType = 0 // Must be preceded by Text or Binary message // TextMessage . TextMessage MessageType = 1 // BinaryMessage . BinaryMessage MessageType = 2 // CloseMessage . CloseMessage MessageType = 8 // PingMessage . PingMessage MessageType = 9 // PongMessage . PongMessage MessageType = 10 )
The message types are defined in RFC 6455, section 11.8.t .
Click to show internal directories.
Click to hide internal directories.