ReadEvent will read a message from the websocket connection and parse it into a valid ServerEvent.
(c *websocket.Conn, ctx context.Context)
| 234 | |
| 235 | // ReadEvent will read a message from the websocket connection and parse it into a valid ServerEvent. |
| 236 | func ReadServerEvent(c *websocket.Conn, ctx context.Context) (*ServerEvent, error) { |
| 237 | message, err := readMessage(c, ctx) |
| 238 | if err != nil { |
| 239 | return nil, err |
| 240 | } |
| 241 | event := ServerEvent{} |
| 242 | if err := json.Unmarshal(message, &event); err != nil { |
| 243 | return nil, err |
| 244 | } |
| 245 | switch event.Type { |
| 246 | case Logs: |
| 247 | event.event = message |
| 248 | return &event, nil |
| 249 | case UnknownServerEventType: |
| 250 | return nil, errInvalidMessageType |
| 251 | default: |
| 252 | return nil, fmt.Errorf("invalid server message type was provided: %s", event.Type) |
| 253 | } |
| 254 | } |
| 255 | |
| 256 | // ReadEvent will read a message from the websocket connection and parse it into a valid ClientEvent. |
| 257 | func ReadClientEvent(c *websocket.Conn, ctx context.Context) (*ClientEvent, error) { |