MM-29979: make websocket writes zero-alloc (#16115)

This reverts commit 31dac80e66.
Этот коммит содержится в:
Agniva De Sarker
2020-11-04 10:05:10 +05:30
коммит произвёл GitHub
родитель fb9c2faa1a
Коммит 4758408699
2 изменённых файлов: 33 добавлений и 5 удалений

Просмотреть файл

@@ -203,6 +203,22 @@ func (ev *WebSocketEvent) ToJson() string {
return string(b)
}
// Encode encodes the event to the given encoder.
func (ev *WebSocketEvent) Encode(enc *json.Encoder) error {
if ev.precomputedJSON != nil {
return enc.Encode(json.RawMessage(
fmt.Sprintf(`{"event": %s, "data": %s, "broadcast": %s, "seq": %d}`, ev.precomputedJSON.Event, ev.precomputedJSON.Data, ev.precomputedJSON.Broadcast, ev.Sequence),
))
}
return enc.Encode(webSocketEventJSON{
ev.Event,
ev.Data,
ev.Broadcast,
ev.Sequence,
})
}
func WebSocketEventFromJson(data io.Reader) *WebSocketEvent {
var ev WebSocketEvent
var o webSocketEventJSON