Skip to the content.

websocket

https://datatracker.ietf.org/doc/html/rfc6455#section-5.3

template


func TestWebsocket(t *testing.T) {
	r := uc.NewRouter()
	// r.Debug()
	r.Get("/ws", func(writer uc.ResponseWriter, request uc.Request) {
		uc.WebsocketSwitchProtocol(writer, request, "123", func(value *uc.CedarWebSocketBuffReader) {
			log.Println(value)
		})
	})
	r.Post("/ws/push", func(writer uc.ResponseWriter, request uc.Request) {
		uc.WebsocketSwitchPush("123", 0x1, []byte("hello world"))
	})
	http.ListenAndServe(":8080", r)
}

explain

在每秒20次READ ,且在 2048byte 下有良好的表现 ,推荐使用的方法

client端连接 ,server进行推送

方法

WebsocketSwitchProtocol

// CedarWebSocketBuffReader 读取websocket协议,这里的websocket主要针对 4086byte 的文本格式
// Data 读取的文本载荷
// Length 文本[]byte长度
type CedarWebSocketBuffReader struct {
    Data   []byte
    Length int
    cedarWebsocketBuffScan
}

uc.WebsocketSwitchProtocol(uc.ResponseWriter,uc.Request, key string, fn func(value *uc.CedarWebSocketBuffReader))

解释

方法

WebsocketSwitchPush

WebsocketSwitchPush(key string, op int, data []byte) error

解释