Documentation
¶
Index ¶
- Variables
- func CloseCode(err error) int
- func CloseReason(err error) string
- type CloseError
- type Conn
- func (c *Conn) BlockingModReadLoop(bufSize int)
- func (c *Conn) Close() error
- func (c *Conn) CloseAndClean(err error)
- func (c *Conn) CloseWithError(err error) error
- func (c *Conn) CompressionEnabled() bool
- func (c *Conn) EnableCompression(enable bool)
- func (c *Conn) EnableWriteCompression(enable bool)
- func (c *Conn) IsAsyncWrite() bool
- func (c *Conn) IsBlockingMod() bool
- func (c *Conn) OnClose(h func(*Conn, error))
- func (c *Conn) OnDataFrame(h func(*Conn, MessageType, bool, []byte))
- func (c *Conn) OnMessage(h func(*Conn, MessageType, []byte))
- func (c *Conn) OnOpen(h func(*Conn))
- func (c *Conn) Read(p *iohttp.Parser, data []byte) error
- func (c *Conn) Session() interface{}
- func (c *Conn) SetCloseError(err error)
- func (c *Conn) SetCloseHandler(h func(*Conn, int, string))
- func (c *Conn) SetPingHandler(h func(*Conn, string))
- func (c *Conn) SetPongHandler(h func(*Conn, string))
- func (c *Conn) SetSession(session interface{})
- func (c *Conn) Subprotocol() string
- func (c *Conn) Write(data []byte) (int, error)
- func (c *Conn) WriteClose(code int, reason string) error
- func (c *Conn) WriteFrame(messageType MessageType, sendOpcode, fin bool, data []byte) error
- func (c *Conn) WriteMessage(messageType MessageType, data []byte) error
- type Dialer
- type MessageType
- type Upgrader
- func (u *Upgrader) EnableCompression(enable bool)
- func (u *Upgrader) OnClose(h func(*Conn, error))
- func (u *Upgrader) OnDataFrame(h func(*Conn, MessageType, bool, []byte))
- func (u *Upgrader) OnMessage(h func(*Conn, MessageType, []byte))
- func (u *Upgrader) OnOpen(h func(*Conn))
- func (u *Upgrader) SetCloseHandler(h func(*Conn, int, string))
- func (u *Upgrader) SetCompressionLevel(level int) error
- func (u *Upgrader) SetPingHandler(h func(*Conn, string))
- func (u *Upgrader) SetPongHandler(h func(*Conn, string))
- func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header, ...) (*Conn, error)
- func (u *Upgrader) UpgradeAndTransferConnToPoller(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error)
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") // ErrMessageSendQuqueIsFull . ErrMessageSendQuqueIsFull = errors.New("message send queue is full") )
View Source
var ( // DefaultBlockingReadBufferSize . DefaultBlockingReadBufferSize = 1024 * 4 // DefaultBlockingModAsyncWrite . DefaultBlockingModAsyncWrite = true DefaultBlockingModSendQueueInitSize = 4 DefaultBlockingModSendQueueMaxSize = 0 // DefaultEngine will be set to a Upgrader.Engine to handle details such as buffers. DefaultEngine = iohttp.NewEngine(iohttp.Config{ ReleaseWebsocketPayload: true, }) )
Functions ¶
Types ¶
type CloseError ¶
CloseError .
type Conn ¶
Conn .
func (*Conn) BlockingModReadLoop ¶
BlockingModReadLoop .
func (*Conn) EnableWriteCompression ¶
EnableWriteCompression .
func (*Conn) OnDataFrame ¶
func (c *Conn) OnDataFrame(h func(*Conn, MessageType, bool, []byte))
OnDataFrame .
func (*Conn) SetCloseHandler ¶
SetCloseHandler .
func (*Conn) SetSession ¶
func (c *Conn) SetSession(session interface{})
SetSession sets user session.
func (*Conn) Subprotocol ¶
Subprotocol returns the negotiated websocket subprotocol.
func (*Conn) WriteFrame ¶
func (c *Conn) WriteFrame(messageType MessageType, sendOpcode, fin bool, data []byte) error
WriteFrame .
func (*Conn) WriteMessage ¶
func (c *Conn) WriteMessage(messageType MessageType, data []byte) error
WriteMessage .
type Dialer ¶
type Dialer struct { Engine *iohttp.Engine Upgrader *Upgrader Jar http.CookieJar DialTimeout time.Duration TLSClientConfig *tls.Config Proxy func(*http.Request) (*url.URL, error) CheckRedirect func(req *http.Request, via []*http.Request) error Subprotocols []string EnableCompression bool Cancel context.CancelFunc }
Dialer .
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 .
type Upgrader ¶
type Upgrader struct { // Subprotocols . Subprotocols []string // CheckOrigin . CheckOrigin func(r *http.Request) bool // HandshakeTimeout represents the timeout duration during websocket handshake. HandshakeTimeout time.Duration // BlockingModReadBufferSize represents the read buffer size of a Conn if it's in blocking mod. BlockingModReadBufferSize int // BlockingModAsyncWrite represents whether use a goroutine to handle writing: // true: use dynamic goroutine to handle writing. // false: write buffer to the conn directely. BlockingModAsyncWrite bool // BlockingModSendQueueInitSize represents the init size of a Conn's send queue, // only takes effect when `BlockingModAsyncWrite` is true. BlockingModSendQueueInitSize int // BlockingModSendQueueInitSize represents the max size of a Conn's send queue, // only takes effect when `BlockingModAsyncWrite` is true. BlockingModSendQueueMaxSize int // contains filtered or unexported fields }
Upgrader .
func (*Upgrader) EnableCompression ¶
EnableCompression .
func (*Upgrader) OnDataFrame ¶
func (u *Upgrader) OnDataFrame(h func(*Conn, MessageType, bool, []byte))
OnDataFrame .
func (*Upgrader) OnMessage ¶
func (u *Upgrader) OnMessage(h func(*Conn, MessageType, []byte))
OnMessage .
func (*Upgrader) SetCloseHandler ¶
SetCloseHandler .
func (*Upgrader) SetCompressionLevel ¶
SetCompressionLevel .
func (*Upgrader) SetPingHandler ¶
SetPingHandler .
func (*Upgrader) SetPongHandler ¶
SetPongHandler .
Click to show internal directories.
Click to hide internal directories.