Задать вопрос
@Ne7Le4Der

Как продолжить выполнение приложения после подключения к WebSocket?

Класс WebSocket
import WebSocket from 'ws';

export class ClassWS {
    private readonly apiKey: string;
    private readonly apiSecret: string;
    private readonly ws: WebSocket;
    private id: number = 1;

    constructor(apiKey: string, apiSecret: string, baseUrl: string) {
        this.apiKey = apiKey;
        this.apiSecret = apiSecret;

        this.ws = this.connect(baseUrl);
    };

    private connect = (baseUrl: string) => {
        const ws = new WebSocket(baseUrl);

        ws.on('open', this.onOpenHandler);
        ws.on('message', this.onMessageHandler);
        ws.on('error', this.onErrorHandler);
        ws.on('close', this.onCloseHandler);

        return ws;
    };

    private onOpenHandler = () => {
        console.log('WebSocket connection established');
    };

    private onMessageHandler = (data: any) => {
        console.log(data);
    };

    private onErrorHandler = (e: any) => {
        console.log(e);
    };

    private onCloseHandler = () => {
        console.log('WebSocket connection closed');
    };

    private incrementMessageId = () => {
        this.id++;
    };

    send = (data: string | Buffer | ArrayBuffer) => {
        this.ws.send(data);

        this.incrementMessageId();
    };
}


Основной файл
(async () => {
    try {
        const apiKey = process.env.API_KEY || null;
        const apiSecret = process.env.API_SECRET || null;
        const baseUrl = process.env.BASE_URL || null;

        if(!apiKey || !apiSecret)
            throw new Error('Укажите API_KEY и API_SECRET в .env');

        if(!baseUrl)
            throw new Error('Укажите BASE_URL .env');

        new ClassWS(apiKey, apiSecret, baseUrl);
    } catch (e) {
        console.log(e);
    }
})();


Получаю в консоль WebSocket connection established и выполнение скрипта прекращается. Как продолжить его выполнение? (раз в n секунд должно приходить сообщение, и, соответственно, должен отрабатывать onMessageHandler)
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@Ne7Le4Der Автор вопроса
Решено. Сервер сразу закрывал соединение, поэтому и скрипт завершал выполнение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы