Denis
да
Николай
да
Спасибо. Дома попробую.
EAgold
привет подскажите пожалуйста почему такой жс код: const chatSocket = new WebSocket( 'ws://192.168.1.101:8000/ws/chat/room/' ); отлично выполняется, то-есть соединение происходит в то время как такой код: const uint16_t port = 8000; const char *host = "ws://192.168.1.101/ws/chat/room/"; if (!client.connect(host, port)) { Serial.println("Connection to host failed"); delay(1000); return; } возвращает ошибку?
EAgold
как правильно указывать урл в client.connect ?
EAgold
пробовал и без ws:// тоже не конектится
Василий
насколько я помню, хост в сокете на питоне принимает только IP или имя, но не URI
The Lord of Кот
EAgold
насколько я помню, хост в сокете на питоне принимает только IP или имя, но не URI
так это не совсем сокеты на питоне это каналы на джанге
EAgold
так а если у меня обработчик сокетов стоит на пути, то что делать?
Dmytro
так а если у меня обработчик сокетов стоит на пути, то что делать?
Давайте не путать TCP сокет и websocket. Что именно у вас на сервере? Явно же вебсокеты ждет
EAgold
да, websocket
EAgold
вот погуглил пример с использованием WebSocketsClient
Dmytro
да, websocket
Тогда после отсутствия рукопожатия для открытия вебсокета, сервер, скорее всего, закроет соединение по тайм-ауту. Если вам нужно работать с вебсокетами, то гуглите именно либу для вебсокетов
EAgold
ок, благодарю
Василий
за исключением ; в конце)
Василий
ща покажу про что я)
EAgold
жутко похожий на питон код)
ну так жс похож на python по синтаксису
Василий
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.settimeout(timeout) client.connect((serverIP,80)) client.sendall(data_bin)
EAgold
там и ; уже не обязательны
Василий
у меня воттакое есть в петоногуделке)
EAgold
у меня воттакое есть в петоногуделке)
я вот уже с следующим занимаюсь стенобитием
Василий
если на серве вебсокет - это != сокет
Василий
там своя прослоечка на старте
Василий
так что аккуратнее
EAgold
я вот уже с следующим занимаюсь стенобитием
он с какого-то, подключается а когда отправляет данные то сразу отключается вообще не понятно на...
EAgold
так что аккуратнее
ну вот я делаю так: в сетапе webSocket.begin(host, port, path); webSocket.onEvent(webSocketEvent); в лупе webSocket.sendTXT(jsonData); delay(1000);
EAgold
так то отправка
EAgold
постоянно
EAgold
то как это сделать?
Василий
если мне надо отправлять данные
просто вызывай функцию отправки где над?
EAgold
ну так я же так и делаю
EAgold
webSocket.sendTXT(jsonData); чем это не функция отправки?
Василий
ну допустим
Василий
у тебя будут просветы в отправках кусками)
EAgold
😳
EAgold
тогда как красиво? просветите?
Василий
delay на что там?
EAgold
ну что-бы не пихал с дикой частотой
Василий
опустим, я не вижу всего кода
Василий
так, ты говорил что у тебя поехало на первом примере
Василий
чего не продолжил с ним?
EAgold
Вот оно, да
так нет я вот это тут нашел пример
Василий
или уже на этапе отправки поймал траблу?
EAgold
https://www.mischianti.org/2020/12/07/websocket-on-arduino-esp8266-and-esp32-client-1/ вот кстати
Василий
а отладчик на мысли не наводит?
EAgold
а отладчик на мысли не наводит?
а я не умею работать с отладчиком😂 я умею только ставить принты и смотреть куда еще дошел а где уже ошибка 😂
EAgold
а отладчик на мысли не наводит?
аа так я понял webSocket.loop(); это слушалка и когда я ставлю делеи то он начинает работать не понятно как
EAgold
что и логично
EAgold
нооо я считал, что он запустится в отдельном потоке будет слушать, в то время как я смогу отправлять данные
Василий
ты просто ее должен постоянно крутить
Василий
чтобы реакции вызывать на сокетовые события
EAgold
ты просто ее должен постоянно крутить
да, вот я и ошибочно посчитал что она сама в отдельном потоке запускается в бесконечный луп
Василий
в отдельном потоке, или делай общий луп
EAgold
в отдельном потоке, или делай общий луп
а как его запихнуть в поток? возможно ли это вообще в esp?
EAgold
а как его запихнуть в поток? возможно ли это вообще в esp?
я хочу что-бы работало точно как в примере на жс
Dmytro
а как его запихнуть в поток? возможно ли это вообще в esp?
Если есп32 - то там уже есть freertos и это легко.
Ivan Li
аа так я понял webSocket.loop(); это слушалка и когда я ставлю делеи то он начинает работать не понятно как
Вот тут раскрывается работа со временем и решение проблем delay https://alexgyver.ru/lessons/time/
Жексон
Ну ладно ЕSP и STM сравнивать... А Arduino тут причем?
The Lord of Кот
Жексон
The Lord of Кот
тогда ок :)
Никакой цели он не несёт
Портянки кода выкладывайте на pastebin подобных сервисах пожалуйста.
Lucifer
Сап народ
Lucifer
тут кто шарит за attiny?)
Lucifer
при попытке прошить аттини85 ошибка такая выскакивает, как лечить хз
Lucifer
причем две разные тиньки пробую, ошибка одна и та же
Dees7
причем две разные тиньки пробую, ошибка одна и та же
Аттини при подключении определяется как загрузчик. Через секунд 5 стартует скетч. Если этого переключения не происходит то слетел загрузчик.
Dees7
Винда или Линукс?