import {Logger} from "./logger";
import { encode } from "@msgpack/msgpack";
import {MessageC2S} from "./protocol/MessageC2S";
const logger = new Logger("Gateway");
export async function gateway_connect(gateway_url: string) {
logger.info("FAST CONNECT - Connecting to gateway socket at " + gateway_url);
let ws = await _websocket_connect(gateway_url);
logger.debug("[fastconnect] connected to gateway, performing handshake with server");
}
let socket: WebSocket | undefined = undefined;
function _websocket_connect(url: string): Promise<WebSocket> {
if (socket && socket.readyState < 2) {
// reuse socket connection
return Promise.resolve(socket);
}
return new Promise((resolve, reject) => {
socket = new WebSocket(url);
socket.onopen = () => {
// @ts-ignore if here, guaranteed that `socket` != undefined
resolve(socket);
}
socket.onerror = (err) => {
reject(err);
}
});
}