detritus

Socketclass

A connection to a voice server's gateway, created by Gateway.Socket.voiceConnect().

On this page
import { Media } from 'detritus-client-socket';

Media.Socket;
EventEmitterEventSpewerSocket
35 properties36 methodssrc/media.ts:47

Constructor

Properties

_heartbeat
{ ack: boolean; interval: Interval; intervalTime: number | null; lastAck: number | null; lastSent: number | null; nonce: number | null }
bucket
Bucket
channelId
string
connectedUserIds
Set<string>
dave
DaveSession | null
Default null
endpoint
string | null
Default null
forceMode
Default null
gateway
identified
boolean
Default false
ipDiscoveryFailures
number
Default 0
killed
boolean
Default false
promises
Set<{ reject: Function; resolve: Function }>
protocol
Default null
ready
boolean
Default false
receiveEnabled
boolean
Default false
reconnects
number
Default 0
sequence
number
Default -1
serverId
string
socket
BaseSocket | null
Default null
ssrcs
{ audio: Map<number, string>; video: Map<number, string> }
state
readonly
Default SocketStates.CLOSED
token
string | null
Default null
transport
Socket | null
Default null
userId
string
videoEnabled
boolean

Accessors

audioSSRC
number
get
closed
boolean
get
closing
boolean
get
connected
boolean
get
connecting
boolean
get
guildId
string | null
get
inDm
boolean
get
rtxSSRC
number
get
sessionId
string | null
get
videoSSRC
number
get
voicePrivacyCode
string | null
get

Methods

disconnect()

src/media.ts:353
disconnect(code?: number, reason?: string): void
code?
number
Default SocketCloseCodes.NORMAL
reason?
string

heartbeat()

src/media.ts:818
heartbeat(fromInterval?: boolean): void
fromInterval?
boolean
Default false

kill()

src/media.ts:628
kill(error?: any, options?: { voiceStateUpdate?: boolean }): void
error?
any
options?
{ voiceStateUpdate?: boolean }
options.voiceStateUpdate?
boolean

on()

src/media.ts:1010
on(event: string | symbol, listener: (...args: any[]) => void): this

Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

server.on('connection', (stream) => {
  console.log('someone connected!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

By default, event listeners are invoked in the order they are added. The emitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a

Since v0.1.101

event
string | symbol
listener
(...args: any[]) => void

The callback function

on(event: "close", listener: (payload: { code: number; reason: string }) => any): this
on(event: "killed", listener: (payload: { error?: Error }) => any): this
on(event: "open", listener: (target: BaseSocket) => any): this
on(event: "packet", listener: (packet: Packet) => any): this
on(event: "ready", listener: () => any): this
on(event: "socket", listener: (socket: BaseSocket) => any): this
on(event: "state", listener: (__namedParameters: { state: SocketStates }) => any): this
on(event: "transport", listener: (transport: Socket) => any): this
on(event: "transportReady", listener: (transport: Socket) => any): this
on(event: "warn", listener: (error: Error) => any): this
Overrides EventSpewer.on

onClose()

src/media.ts:653
onClose(target: BaseSocket, event: { code: number; reason: string }): void
target
BaseSocket
event
{ code: number; reason: string }
event.code
number
event.reason
string

onMessage()

src/media.ts:728
onMessage(target: BaseSocket, event: { data: any; type: string }): void
target
BaseSocket
event
{ data: any; type: string }
event.data
any
event.type
string

send()

src/media.ts:765
send(op: number, d: any, callback?: Function, direct?: boolean): void
op
number
d
any
callback?
Function
direct?
boolean
Default false

sendBinary()

src/media.ts:801
sendBinary(op: number, payload: Buffer, callback?: Function): void

sendClientConnect()

src/media.ts:927
sendClientConnect(callback?: Function): void

sendDaveTransitionReady()

src/media.ts:814
sendDaveTransitionReady(transitionId: number, callback?: Function): void

sendSelectProtocol()

src/media.ts:935
sendSelectProtocol(
  options: { codecs?: any[]; data: { address: string; mode: string; port: number }; experiments?: any[]; protocol?: string; rtcConnectionId?: string },
  callback?: Function,
): void
options
{ codecs?: any[]; data: { address: string; mode: string; port: number }; experiments?: any[]; protocol?: string; rtcConnectionId?: string }
options.codecs?
any[]
options.data
{ address: string; mode: string; port: number }
options.experiments?
any[]
options.protocol?
string
options.rtcConnectionId?
string
callback?
Function

sendSpeaking()

src/media.ts:962
sendSpeaking(
  options: { delay?: number; priority?: boolean; soundshare?: boolean; ssrc?: number; voice?: boolean },
  callback?: Function,
): void
options
{ delay?: number; priority?: boolean; soundshare?: boolean; ssrc?: number; voice?: boolean }
options.delay?
number
options.priority?
boolean
options.soundshare?
boolean
options.ssrc?
number
options.voice?
boolean
callback?
Function

sendStateUpdate()

src/media.ts:994
sendStateUpdate(
  options?: { selfDeaf?: boolean; selfMute?: boolean; selfVideo?: boolean },
  callback?: Function,
): void
options?
{ selfDeaf?: boolean; selfMute?: boolean; selfVideo?: boolean }
options.selfDeaf?
boolean
options.selfMute?
boolean
options.selfVideo?
boolean
callback?
Function