Действие 'Post запрос' не возвращает результат через изменение переменных, чтобы получить ответ, вам нужно вызвать действие 'Текущий Url', 'Содержание ответа', 'Статус ответа' или 'Получить заголовок' после выполнения запроса.
alt text
На сайте можна получать информацию через вебсокет (без авторизации на самом сайте).
Я проверил, будет ли работать получение на http://websocket.org/echo.html . Все работатает.

Но код, которий создан на примере echo.websocket.org demo не хочет работать, идет ошибка 400.
Вот сам код:
const WebSocket = require('ws');
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');
});
ws.on('message', function incoming(data) {
console.log(`Roundtrip time: ${Date.now() - data} ms`);
setTimeout(function timeout() {
ws.send(Date.now());
}, 500);
});
@fOrest94 в 1 варианте у вас указан wss, а во 2 вариаете ws
у меня на https://www.websocket.org/echo.html не заработали
ни wss://playdrop.org/socket/?EIO=3&transport=websocket/
ни ws://playdrop.org/socket/?EIO=3&transport=websocket/
@tet-vivi said in Помогите с вебсокет:
ws://playdrop.org/socket/?EIO=3&transport=websocket/
Проверил вебсокет без защиты (ws) не хочет работать на сайте.
wss://playdrop.org/socket/?EIO=3&transport=websocket отлично работает, главное в конце слэш не ставить.
Вы меня натолкнули на мисль, что надо и в коде вконце слэш забрать и зароботал вход. Законектилось. Сейчас надо как то реализировать получения сообщений.
@fOrest94 said in Помогите с вебсокет:
@tet-vivi said in Помогите с вебсокет:
ws://playdrop.org/socket/?EIO=3&transport=websocket/
Проверил вебсокет без защиты (ws) не хочет работать на сайте.
wss://playdrop.org/socket/?EIO=3&transport=websocket отлично работает, главное в конце слэш не ставить.Вы меня натолкнули на мисль, что надо и в коде вконце слэш забрать и зароботал вход. Законектилось. Сейчас надо как то реализировать получения сообщений.
Вы же синхронизируете код в действии ноды?
https://community.bablosoft.com/topic/4450/websocket-на-node-js/6
@fOrest94 said in Помогите с вебсокет:
console.log(
Roundtrip time: ${Date.now() - data} ms);
Странная строка, из даты вычитается сообщение? )
@fOrest94 said in Помогите с вебсокет:
@Fox Вот так это выглядит.
Но сообщения в лог не идет о коннекте. Не знаю в чем причина.
Глянул сейчас сайт, в фаербаге ссылка на рукопожатие выглядит вот так:
wss://playdrop.org/socket/?EIO=3&transport=websocket&sid=I2OFE0_m89wb2pGHBOeH
и параметр sid берётся из куков

Если указать этот параметр, то рукопожатие происходит корректно:

@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 и данные с вебсокета можна було получать бесконечно?
Повесить на данное событие обработчик и конектиться заново.