colyseus.js
Version:
Colyseus Multiplayer SDK for JavaScript/TypeScript
46 lines • 1.66 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebSocketTransport = void 0;
const ws_1 = __importDefault(require("ws"));
const WebSocket = globalThis.WebSocket || ws_1.default;
class WebSocketTransport {
constructor(events) {
this.events = events;
}
send(data) {
this.ws.send(data);
}
sendUnreliable(data) {
console.warn("colyseus.js: The WebSocket transport does not support unreliable messages");
}
/**
* @param url URL to connect to
* @param headers custom headers to send with the connection (only supported in Node.js. Web Browsers do not allow setting custom headers)
*/
connect(url, headers) {
try {
// Node or Bun environments (supports custom headers)
this.ws = new WebSocket(url, { headers, protocols: this.protocols });
}
catch (e) {
// browser environment (custom headers not supported)
this.ws = new WebSocket(url, this.protocols);
}
this.ws.binaryType = 'arraybuffer';
this.ws.onopen = this.events.onopen;
this.ws.onmessage = this.events.onmessage;
this.ws.onclose = this.events.onclose;
this.ws.onerror = this.events.onerror;
}
close(code, reason) {
this.ws.close(code, reason);
}
get isOpen() {
return this.ws.readyState === WebSocket.OPEN;
}
}
exports.WebSocketTransport = WebSocketTransport;
//# sourceMappingURL=WebSocketTransport.js.map