The Discord WebSocket client class.
More...
|
| constructor (*hash< auto > opts) |
| creates the object and optionally sets logging targets
|
|
| destructor () |
| Deletes the object.
|
|
hash< auto > | getInfo () |
| Returns performance statistics for the socket.
|
|
*string | setupUrl (*string url) |
| setup URL
|
|
|
static hash< auto > | getOptions (*hash< auto > opts) |
| Processes options for the DiscordWebSocketClient constructor.
|
|
|
const | DefaultApi = 10 |
| Default API version.
|
|
const | DefaultHeaders = ... |
| Default headers to use in the initial HTTP request after connecting.
|
|
const | DefaultOptions = ... |
| Default option values.
|
|
const | DOP_DISPATCH = 0 |
| Receive: An event was dispatched.
|
|
const | DOP_HEARTBEAT = 1 |
| Send/Receive: Fired periodically by the client to keep the connection alive.
|
|
const | DOP_HEARTBEAT_ACK = 11 |
| Receive: Sent in response to receiving a heartbeat to acknowledge that it has been received.
|
|
const | DOP_HELLO = 10 |
| Receive: Sent immediately after connecting, contains the heartbeat_interval to use.
|
|
const | DOP_IDENTIFY = 2 |
| Send: Starts a new session during the initial handshake.
|
|
const | DOP_INVALID_SESSION = 9 |
| Receive: The session has been invalidated. You should reconnect and identify/resume accordingly.
|
|
const | DOP_PRESENCE_UPDATE = 3 |
| Send: Update the client's presence.
|
|
const | DOP_RECONNECT = 7 |
| Receive: You should attempt to reconnect and resume immediately.
|
|
const | DOP_REQUEST_GUILD_MEMBERS = 8 |
| Send: Request information about offline guild members in a large guild.
|
|
const | DOP_RESUME = 6 |
| Send: Resume a previous session that was disconnected.
|
|
const | DOP_VOICE_STATE_UPDATE = 4 |
| Send: Used to join/leave or move between voice channels.
|
|
const | OpMap = ... |
| Opcode to string map.
|
|
|
| constructorInit (hash< auto > opts) |
| Common constructor code.
|
|
| doReconnect (reference< hash< auto > > info) |
| Connects to the server when reconnecting.
|
|
int | handleEventData (auto msgdata) |
| Handles deserialized event data.
|
|
| handleHeartbeatAck () |
| Handle a Heartbeat ACK.
|
|
| handleHello (hash< auto > d) |
| Handle a HELLO message.
|
|
int | handleMessage (hash< auto > msg) |
| Handle a message by raising a data event.
|
|
int | handleMessage (hash< WsMsgInfo > h, reference< data > buf) |
| Handles WebSocket protocol messages.
|
|
| handleReadyMessage (hash< auto > d) |
| Handle a READY message.
|
|
Counter | heartbeat_cnt () |
| Heartbeat thread counter.
|
|
Condition | heartbeat_cond () |
| Heartbeat condition.
|
|
Mutex | heartbeat_lock () |
| Heartbeat mutex.
|
|
| reconnectPostamble () |
| Executes after a reconnect.
|
|
| reconnectPreamble () |
| Executes before a reconnect.
|
|
| sendIdentify () |
| Send an Identify message.
|
|
| sendResume () |
| Send a resume message.
|
|
|
int | api = DefaultApi |
| API version.
|
|
bool | hb_stop |
| Heartbeat thread stop flag.
|
|
int | hb_tid |
| Heartbeat thread ID.
|
|
int | heartbeat_interval |
| The heartbeat interval in ms.
|
|
int | intents |
| Intents for the identify message.
|
|
int | last_sequence |
| The last received sequence number.
|
|
string | resume_gateway_url |
| Resume gateway URL.
|
|
string | session_id |
| Current session ID.
|
|
string | token |
| Bot token.
|
|
The Discord WebSocket client class.
◆ constructor()
DiscordWebSocketClient::DiscordWebSocketClient::constructor |
( |
*hash< auto > | opts | ) |
|
creates the object and optionally sets logging targets
- Example:
DiscordWebSocketClient ws();
- Parameters
-
opts | All options accepted by WebSocketClient::constructor() with the following differences:
token: must be a bot token and is a required option
intents: optional integer intent for the identify message
|
- Exceptions
-
WEBSOCKET-ERROR | unknown scheme, missing 'url' key in option hash; invalid option value |
◆ getInfo()
hash< auto > DiscordWebSocketClient::DiscordWebSocketClient::getInfo |
( |
| ) |
|
Returns performance statistics for the socket.
- Example:
hash<auto> h = ws.getInfo();
- Returns
- a hash with the following keys:
api:
the API in use
cid:
the current CID
heartbeat_tid:
the heartbeat TID
session_id:
the current session ID
last_sequence:
the last sequence number received
resume_gateway_url:
the gate URL for resumes