Documentation
¶
Index ¶
- Constants
- Variables
- func CheckCloseFrameData(code ws.StatusCode, reason string) error
- func HandleCloseFrame(pool *pbytes.Pool, body *bytes.Buffer, buffer *bytes.Buffer) error
- func NewWebSocketServer(handler WSHandler, opts ...gev.Option) (server *gev.Server, err error)
- func ParseCloseFrameData(payload []byte) (code ws.StatusCode, reason string)
- func SendBinaryFrame(c *gev.Connection, bodyBuffer *bytes.Buffer) error
- func VirtualReadHeader(pool *pbytes.Pool, in *ringbuffer.RingBuffer) (h ws.Header, err error)
- func WriteBinaryFrame(pool *pbytes.Pool, body *bytes.Buffer, buffer *bytes.Buffer) error
- func WritePongFrame(pool *pbytes.Pool, body *bytes.Buffer, buffer *bytes.Buffer) error
- type HandlerWrap
- type WSHandler
Constants ¶
const (
MaxHeaderSize = 14
)
Header size length bounds in bytes.
Variables ¶
var ( ErrHeaderLengthMSB = fmt.Errorf("header error: the most significant bit must be 0") ErrHeaderLengthUnexpected = fmt.Errorf("header error: unexpected payload length bits") ErrHeaderNotReady = fmt.Errorf("header error: not enough") )
Errors used by frame reader.
Functions ¶
func CheckCloseFrameData ¶
func CheckCloseFrameData(code ws.StatusCode, reason string) error
CheckCloseFrameData checks received close information to be valid RFC6455 compatible close info.
Note that code.Empty() or code.IsAppLevel() will raise error.
If endpoint sends close frame without status code (with frame.Length = 0), application should not check its payload.
func HandleCloseFrame ¶
func NewWebSocketServer ¶ added in v0.2.1
NewWebSocketServer 创建 WebSocket Server
func ParseCloseFrameData ¶
func ParseCloseFrameData(payload []byte) (code ws.StatusCode, reason string)
ParseCloseFrameData parses close frame status code and closure reason if any provided. If there is no status code in the payload the empty status code is returned (code.Empty()) with empty string as a reason.
func SendBinaryFrame ¶
func SendBinaryFrame(c *gev.Connection, bodyBuffer *bytes.Buffer) error
func VirtualReadHeader ¶
func VirtualReadHeader(pool *pbytes.Pool, in *ringbuffer.RingBuffer) (h ws.Header, err error)
VirtualReadHeader reads a frame header from r.
func WriteBinaryFrame ¶
Types ¶
type HandlerWrap ¶
type HandlerWrap struct {
// contains filtered or unexported fields
}
HandlerWrap gev Handler wrap
func NewHandlerWrap ¶
func NewHandlerWrap(wsHandler WSHandler) *HandlerWrap
func (*HandlerWrap) OnClose ¶
func (s *HandlerWrap) OnClose(c *gev.Connection)
func (*HandlerWrap) OnConnect ¶
func (s *HandlerWrap) OnConnect(c *gev.Connection)
func (*HandlerWrap) OnMessage ¶
func (s *HandlerWrap) OnMessage(c *gev.Connection, buffer *ringbuffer.RingBuffer)
type WSHandler ¶
type WSHandler interface { OnConnect(c *gev.Connection) OnMessage(c *gev.Connection, msg []byte, outBuffer *bytes.Buffer) error OnClose(c *gev.Connection) }
WSHandler WebSocket Server 注册接口