Loading...
Searching...
No Matches
DiscordWebSocketClient::DiscordWebSocketConnection Class Reference

class for Discord websocket connections; returns an object of class DiscordWebSocketClient More...

## Public Member Functions

| constructor (hash< auto > config, *hash< auto > attr)
| creates the DiscordWebSocketConnection connection object
| constructor (string name, string description, *string url, hash< auto > attributes={}, hash< auto > options={})
| creates the DiscordWebSocketConnection connection object
string | getType ()
| returns `"discordwss"`

## Static Public Member Functions

static string | discoverUrl ()
| Discover the Discord gateway URL.

## Public Attributes

const | ConnectionScheme = ...
| Connection entry info.
const | DefaultGatewayUrl = "wss://gateway.discord.gg/"
| Default Discord gateway URL.
const | GatewayDiscoveryUrl = "https://discord.com/api/gateway"
| Discord gateway discovery URL.

## Protected Member Functions

DiscordWebSocketClient | getImpl (bool connect=True, *hash< auto > rtopts)
| returns a DiscordWebSocketClient object
| setRealUrl (*string url)
| Called by the constructor to set the real URL.

## Detailed Description

class for Discord websocket connections; returns an object of class DiscordWebSocketClient

Supports all the options of the WebSocketConnection class; note that the `token` option is required by this class and is used as the gateway token after connecting and not as an HTTP authentication token

## Member Function Documentation

## constructor() [1/2]

DiscordWebSocketClient::DiscordWebSocketConnection::constructor | ( | hash< auto > | config,
|  | *hash< auto > | attr )

creates the DiscordWebSocketConnection connection object

Parameters

  config

  with the following keys:
  - name (required string): the connection name
  - display_name (optional string): the display name
  - short_desc (optional string): a short description in plain text
  - desc (optional string): a long description with markdown formatting
  - url (required string): the connection URL
  - opts (optional hash): connection options
  - logger (optional LoggerInterface object): logger for the connection

  attr

  optional connection attributes
  - monitor (optional bool): should the connection be monitored? Default: True
  - enabled (optional bool): is the connection enabled? Default: True
  - locked (optional bool): is the connection locked? Default: False
  - debug_data (optional bool): debug data? Default: False
  - tags (optional hash): tags for the connection; no default value

Exceptions

  CONNECTION-OPTION-ERROR | missing or invalid connection option or attribute

## constructor() [2/2]

DiscordWebSocketClient::DiscordWebSocketConnection::constructor | ( | string | name,
|  | string | description,
|  | *string | url,
|  | hash< auto > | attributes = {},
|  | hash< auto > | options = {} )

creates the DiscordWebSocketConnection connection object

Parameters

  name | the name of the connection
  description | connection description
  url | connection URL; if not provided, then the URL will be discovered automatically
  attributes | various attributes. See below
  options | connection options

See AbstractConnection::constructor() for `attributes` and `options` reference.

Exceptions

  CONNECTION-OPTION-ERROR | missing or invalid connection option

## getImpl()

DiscordWebSocketClient DiscordWebSocketClient::DiscordWebSocketConnection::getImpl | ( | bool | connect = True,
|  | *hash< auto > | rtopts )

protected

returns a DiscordWebSocketClient object

Parameters

  connect | if True, then WebSocketClient::connect() is called
  rtopts | runtime options

Returns
  a DiscordWebSocketClient object

## setRealUrl()

DiscordWebSocketClient::DiscordWebSocketConnection::setRealUrl | ( | *string | url | ) |

protected

Called by the constructor to set the real URL.

@path the new URL

sets the real WS URL for WebSocket-based connections