~starkingdoms/starkingdoms

ref: 026450bb48c5ccc04f07b4dc6de2860a1c808085 starkingdoms/client/src/gateway.ts -rw-r--r-- 1001 bytes
026450bb — c0repwn3r add client code 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
        }
    });
}