21 lines
398 B
Go
21 lines
398 B
Go
package wire
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"github.com/vmihailenco/msgpack/v5"
|
||
|
|
"nhooyr.io/websocket"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Writer interface {
|
||
|
|
Write(ctx context.Context, messageType websocket.MessageType, p []byte) error
|
||
|
|
}
|
||
|
|
|
||
|
|
func WriteMsg(ctx context.Context, w Writer, v interface{}) error {
|
||
|
|
payload, err := msgpack.Marshal(v)
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return w.Write(ctx, websocket.MessageBinary, payload)
|
||
|
|
}
|