Documentation
¶
Index ¶
- Constants
- Variables
- func CloneHeader(h http.Header) http.Header
- func ComputeAcceptKey(challengeKey string) string
- func CopyN(dst io.Writer, src io.Reader, n int64) error
- func FNV64(s string) uint64
- func MaskByByte(content []byte, key []byte)
- func MethodExists(in interface{}, method string) (reflect.Value, bool)
- func NewBufferWithCap(n uint8) *bytes.Buffer
- func NewMaskKey() [4]byte
- func ReadN(reader io.Reader, data []byte, n int) error
- func StringToBytes(s string) []byte
- func WriteN(writer io.Writer, content []byte, n int) error
- type Buffer
- type BufferPool
- type Error
- type NetConn
- type RandomString
- type ReadLener
- type StatusCode
Constants ¶
View Source
const ( SecWebSocketVersion = "Sec-WebSocket-Version" SecWebSocketKey = "Sec-WebSocket-Key" Connection = "Connection" Upgrade = "Upgrade" SecWebSocketExtensions = "Sec-WebSocket-Extensions" )
websocket header keys
View Source
const ( SecWebSocketVersion_Value = "13" Connection_Value = "Upgrade" Upgrade_Value = "websocket" )
websocket header values
View Source
const ( MagicNumber = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" FrameHeaderSize = 14 )
View Source
const ( ThresholdV1 = 125 ThresholdV2 = math.MaxUint16 ThresholdV3 = math.MaxUint64 )
View Source
const ( Lv1 = 128 Lv2 = 1024 Lv3 = 4 * 1024 Lv4 = 16 * 1024 Lv5 = 64*1024 - 1 )
buffer level
Variables ¶
View Source
var ( ErrCheckOrigin = errors.New("check origin error") ErrHandshake = errors.New("connecting handshake error") ErrTextEncoding = errors.New("text frame payload must be utf8 encoding") ErrUnexpectedContentLength = errors.New("unexpected content length") )
View Source
var ( AlphabetNumeric = &RandomString{ layout: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r: rand.New(rand.NewSource(time.Now().UnixNano())), mu: sync.Mutex{}, } Numeric = &RandomString{ layout: "0123456789", r: rand.New(rand.NewSource(time.Now().UnixNano())), mu: sync.Mutex{}, } )
View Source
var FlateTail = []byte{0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff}
Add four bytes as specified in RFC Add final block to squelch unexpected EOF error from flate reader.
Functions ¶
func ComputeAcceptKey ¶
func MaskByByte ¶
func MethodExists ¶ added in v1.2.7
MethodExists if nil return false
func NewBufferWithCap ¶ added in v1.2.0
func NewMaskKey ¶
func NewMaskKey() [4]byte
func StringToBytes ¶ added in v1.2.9
Types ¶
type BufferPool ¶
type BufferPool struct {
// contains filtered or unexported fields
}
func NewBufferPool ¶
func NewBufferPool() *BufferPool
func (*BufferPool) Put ¶
func (p *BufferPool) Put(b *bytes.Buffer)
type Error ¶ added in v1.2.1
type Error struct {
Err error
Code StatusCode
}
func NewError ¶ added in v1.2.1
func NewError(code StatusCode, err error) *Error
type RandomString ¶
type RandomString struct {
// contains filtered or unexported fields
}
func (*RandomString) Generate ¶
func (c *RandomString) Generate(n int) []byte
func (*RandomString) Intn ¶ added in v1.0.1
func (c *RandomString) Intn(n int) int
func (*RandomString) Uint32 ¶ added in v1.0.1
func (c *RandomString) Uint32() uint32
type StatusCode ¶ added in v1.2.0
type StatusCode uint16
const ( // 正常关闭; 无论为何目的而创建, 该链接都已成功完成任务. CloseNormalClosure StatusCode = 1000 // 终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开. CloseGoingAway StatusCode = 1001 // 由于协议错误而中断连接. CloseProtocolError StatusCode = 1002 // 由于接收到不允许的数据类型而断开连接 (如仅接收文本数据的终端接收到了二进制数据). CloseUnsupported StatusCode = 1003 // 保留. 表示没有收到预期的状态码. CloseNoStatusReceived StatusCode = 1005 // 保留. 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧). CloseAbnormalClosure StatusCode = 1006 // 由于收到了格式不符的数据而断开连接 (如文本消息中包含了非 UTF-8 数据). CloseUnsupportedData StatusCode = 1007 // 由于收到不符合约定的数据而断开连接. 这是一个通用状态码, 用于不适合使用 1003 和 1009 状态码的场景. ClosePolicyViolation StatusCode = 1008 // 由于收到过大的数据帧而断开连接. CloseMessageTooLarge StatusCode = 1009 // 客户端期望服务器商定一个或多个拓展, 但服务器没有处理, 因此客户端断开连接. CloseMissingExtension StatusCode = 1010 // 客户端由于遇到没有预料的情况阻止其完成请求, 因此服务端断开连接. CloseInternalServerErr StatusCode = 1011 // 服务器由于重启而断开连接. [Ref] CloseServiceRestart StatusCode = 1012 // 服务器由于临时原因断开连接, 如服务器过载因此断开一部分客户端连接. [Ref] CloseTryAgainLater StatusCode = 1013 // 保留. 表示连接由于无法完成 TLS 握手而关闭 (例如无法验证服务器证书). CloseTLSHandshake StatusCode = 1015 )
func (StatusCode) Bytes ¶ added in v1.2.0
func (c StatusCode) Bytes() []byte
func (StatusCode) Error ¶ added in v1.2.0
func (c StatusCode) Error() string
func (StatusCode) Uint16 ¶ added in v1.2.0
func (c StatusCode) Uint16() uint16
Click to show internal directories.
Click to hide internal directories.