@UserTrue
Когда искал по форуму, часто встречал ответы этого пользователя. Если найдется минутка, поделитесь опытом. Пока выделил два возможных решения замены curl http. Может есть еще варианты? Какой вариант для вас лучше?
Помогите с вебсокет
-
@Fox said in Помогите с вебсокет:
и параметр sid берётся из куков
У меня вообще исходный код автора работает без проблем
const WebSocket = require('ws'); await (new Promise((resolve, reject) => { const ws = new WebSocket('wss://playdrop.org/socket/?EIO=3&transport=websocket', { origin: 'https://playdrop.org' }); ws.on('open', function open() { console.log('connected'); ws.send(Date.now()); }); ws.on('close', function close() { console.log('disconnected'); resolve() }); ws.on('message', function incoming(data) { console.log(data); setTimeout(function timeout() { ws.send(Date.now()); }, 500); }); }));
-
@UserTrue said in Помогите с вебсокет:
@Fox said in Помогите с вебсокет:
и параметр sid берётся из куков
У меня вообще исходный код автора работает без проблем
const WebSocket = require('ws'); await (new Promise((resolve, reject) => { const ws = new WebSocket('wss://playdrop.org/socket/?EIO=3&transport=websocket', { origin: 'https://playdrop.org' }); ws.on('open', function open() { console.log('connected'); ws.send(Date.now()); }); ws.on('close', function close() { console.log('disconnected'); resolve() }); ws.on('message', function incoming(data) { console.log(data); setTimeout(function timeout() { ws.send(Date.now()); }, 500); }); }));Хмм, этот код у меня тоже отработал без проблем. Я его и не проверял, раз автор сказал, что не работает
:D -
@Fox said in Помогите с вебсокет:
Хмм, этот код у меня тоже отработал без проблем. Я его и не проверял, раз автор сказал, что не работает :D
У автора скрин обрезан, возможно его код подключается в дочернем модуле. А как "Мы" знаем, если модуль является 3-им и более потомком, то лог БАСа надо пробрасываться самому ))
-
@fOrest94 said in Помогите с вебсокет:
@UserTrue Спасибо большое, что подправили мой код.
Но сейчас возникает вопрос, как сделать бесперебойное получение данных, чтобы не было таймаута.Сохраняйте данные в глобальной переменной, например в массиве и получайте из него данные когда необходимо
-
@fOrest94 said in Помогите с вебсокет:
@Fox С сохранением понятно. Но как реализировать продолжение работы после таймаута?
а для чего вам вообще таймаут? ))) переместите resolve после конекта и всё. Действие закроется сразу после конекта, а данные вы будете получать в других действиях node обращаясь к глобальной переменной ноды
-
@fOrest94 said in Помогите с вебсокет:
@UserTrue А может скрипт бесперебойно работать без ошибкы "Таймаут во время выполнения функции на встроенном языке"?
Может, вам же об этом и говорят
-
@fOrest94 said in Помогите с вебсокет:
Возник сейчас вопрос по этой теме: Как сделать, что не было disconnected и данные с вебсокета можна було получать бесконечно?
Повесить на данное событие обработчик и конектиться заново.
-
@fOrest94 said in Помогите с вебсокет:
@UserTrue Как именно это реализировать в ноде?
На событие close вешаете обработчик и в нем заново конектитесь.
