Merge pull request #4 from WqyJh/feat-message-raw

feat: add SendMessageRaw/ReadMessageRaw
This commit is contained in:
Qiying Wang
2024-11-05 18:55:59 +08:00
committed by GitHub
+17 -3
View File
@@ -19,17 +19,22 @@ func (c *Conn) Close() error {
return c.conn.Close()
}
// SendMessageRaw sends a raw message to the server.
func (c *Conn) SendMessageRaw(ctx context.Context, data []byte) error {
return c.conn.WriteMessage(ctx, MessageText, data)
}
// SendMessage sends a client event to the server.
func (c *Conn) SendMessage(ctx context.Context, msg ClientEvent) error {
data, err := MarshalClientEvent(msg)
if err != nil {
return err
}
return c.conn.WriteMessage(ctx, MessageText, data)
return c.SendMessageRaw(ctx, data)
}
// ReadMessage reads a server event from the server.
func (c *Conn) ReadMessage(ctx context.Context) (ServerEvent, error) {
// ReadMessageRaw reads a raw message from the server.
func (c *Conn) ReadMessageRaw(ctx context.Context) ([]byte, error) {
messageType, data, err := c.conn.ReadMessage(ctx)
if err != nil {
return nil, err
@@ -37,6 +42,15 @@ func (c *Conn) ReadMessage(ctx context.Context) (ServerEvent, error) {
if messageType != MessageText {
return nil, fmt.Errorf("expected text message, got %d", messageType)
}
return data, nil
}
// ReadMessage reads a server event from the server.
func (c *Conn) ReadMessage(ctx context.Context) (ServerEvent, error) {
data, err := c.ReadMessageRaw(ctx)
if err != nil {
return nil, err
}
event, err := UnmarshalServerEvent(data)
if err != nil {
return nil, err