46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package messages
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
type Metadata struct {
|
||
MessageID string `json:"message_id"`
|
||
MessageType Type `json:"message_type"`
|
||
MessageTimestamp time.Time `json:"message_timestamp"`
|
||
}
|
||
|
||
type Type string
|
||
|
||
const (
|
||
TypeSessionWelcome Type = "session_welcome"
|
||
TypeSessionKeepAlive Type = "session_keepalive"
|
||
TypeNotification Type = "notification"
|
||
TypeSessionReconnect Type = "session_reconnect"
|
||
TypeRevocation Type = "revocation"
|
||
)
|
||
|
||
type Message struct {
|
||
Metadata Metadata `json:"metadata"`
|
||
Payload any `json:"payload"`
|
||
}
|
||
|
||
type Session struct {
|
||
// An ID that uniquely identifies this WebSocket connection. Use this ID to set the session_id field in all subscription requests.
|
||
ID string `json:"id"`
|
||
|
||
// The connection’s status, which is set to connected.
|
||
Status string `json:"status"`
|
||
|
||
// The maximum number of seconds that you should expect silence before receiving a keepalive message.
|
||
// For a welcome message, this is the number of seconds that you have to subscribe to an event after receiving the welcome message.
|
||
// If you don’t subscribe to an event within this window, the socket is disconnected.
|
||
KeepaliveTimeoutSeconds int `json:"keepalive_timeout_seconds"`
|
||
|
||
// The URL to reconnect to if you get a Reconnect message. Is set to null.
|
||
ReconnectURL *string `json:"reconnect_url"`
|
||
|
||
// The UTC date and time that the connection was created.
|
||
ConnectedAt time.Time `json:"connected_at"`
|
||
}
|