@my-swu/simulator-client / SimulatorSocketError
Class: SimulatorSocketError
Defined in: packages/ts-sdk/src/internal/errors.ts:121
Error thrown when a simulator socket connection fails.
The browser WebSocket error event is an opaque Event (historically stringified as "[object Event]"), so the SDK classifies failures from what the transport CAN expose: the close code and reason. A close with SIMULATOR_REJECTION_CLOSE_CODE means the server deliberately refused the socket and named the engine error in the reason.
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
console.log(socketError)Example
import { createSimulatorClient, SimulatorSocketError } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({ baseUrl: 'http://127.0.0.1:4000' })
const matchSession = simulatorClient.session.create({
matchId: 'match_123',
seatToken: 'seat_token_123',
})
try {
await matchSession.connect()
} catch (error) {
if (error instanceof SimulatorSocketError && error.serverCode) {
console.log('refused with', error.serverCode)
}
}See
https://simulator-sdk.my-swu.com/guide/errors
Extends
Error
Constructors
Constructor
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
console.log(socketError)new SimulatorSocketError(
kind,message,options?):SimulatorSocketError
Defined in: packages/ts-sdk/src/internal/errors.ts:136
Creates one classified socket error with its close-frame context.
Parameters
kind
message
string
options?
WebSocketCloseInfo = {}
Returns
SimulatorSocketError
Overrides
Error.constructor
Properties
cause?
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { cause } = socketError
console.log(cause)
optionalcause?:unknown
Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts:26
Inherited from
Error.cause
closeCode
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { closeCode } = socketError
console.log(closeCode)
readonlycloseCode:number|undefined
Defined in: packages/ts-sdk/src/internal/errors.ts:129
WebSocket close status code when the transport exposed one.
kind
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { kind } = socketError
console.log(kind)
readonlykind:SimulatorSocketErrorKind
Defined in: packages/ts-sdk/src/internal/errors.ts:125
Stable classification of the connection failure.
message
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { message } = socketError
console.log(message)message:
string
Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1077
Inherited from
Error.message
name
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { name } = socketError
console.log(name)name:
string
Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
Error.name
reason
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { reason } = socketError
console.log(reason)
readonlyreason:string|undefined
Defined in: packages/ts-sdk/src/internal/errors.ts:133
WebSocket close reason when the transport exposed one.
stack?
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { stack } = socketError
console.log(stack)
optionalstack?:string
Defined in: node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1078
Inherited from
Error.stack
stackTraceLimit
Example:
Error.stackTraceLimit = 20
staticstackTraceLimit:number
Defined in: node_modules/.pnpm/@types+node@24.12.2/node_modules/@types/node/globals.d.ts:68
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Error.stackTraceLimit
Accessors
serverCode
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
const { serverCode } = socketError
console.log(serverCode)Get Signature
get serverCode():
string|undefined
Defined in: packages/ts-sdk/src/internal/errors.ts:154
Engine error code carried by a rejection close frame, when any.
Only close frames using SIMULATOR_REJECTION_CLOSE_CODE carry a server-authored code; every other failure yields undefined.
Returns
string | undefined
Methods
captureStackTrace()
Example:
import { SimulatorSocketError, SIMULATOR_REJECTION_CLOSE_CODE } from '@my-swu/simulator-client'
// The server refuses a socket by closing with the rejection close code.
const socketError = new SimulatorSocketError(
'rejected',
'socket refused by the simulator server',
{ closeCode: SIMULATOR_REJECTION_CLOSE_CODE, reason: 'match_not_found' },
)
Error.captureStackTrace(socketError, SimulatorSocketError)
staticcaptureStackTrace(targetObject,constructorOpt?):void
Defined in: node_modules/.pnpm/@types+node@24.12.2/node_modules/@types/node/globals.d.ts:52
Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.
The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();Parameters
targetObject
object
constructorOpt?
Function
Returns
void
Inherited from
Error.captureStackTrace
prepareStackTrace()
Example:
Error.prepareStackTrace = (error, stackTraces) => `${error.name}: ${stackTraces.length} frames`
staticprepareStackTrace(err,stackTraces):any
Defined in: node_modules/.pnpm/@types+node@24.12.2/node_modules/@types/node/globals.d.ts:56
Parameters
err
Error
stackTraces
CallSite[]
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTrace
