• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Организация обмена данными посредством WebSockets

vavanvanvanovich

New member
Я тоже долго возился с этим но в итоге перешел на MQTT, и никаких проблем. ТЗ какое если не секрет?
как то всё не просто даётся, попробую изучит MQTT просто насколько это правильно переходить на другую тему не поняв предыдущей)) ф что за Т3?
 

Atom

Member
попробую изучит MQTT
Там и изучать то нечего. и никакой магии. Отладка сообщений идет в консоли любого компа.
но не стоит зацикливаться только на MQTT. Большинство устройств взаимодействует через параметры http/https запросов. Если и его впихнешь туда - хуже не будет, но описаний этому полный Интернет.
 

Dukalis2004

New member
Вижу здесь давно писали, но может кто отзовется. Подключил я ВебСокет и вроде всё работает, но одна проблема, соединение перегружается и данные пропадают, я пока просто с яркостью Леда пытыюсь научиться. пока сокет подключен, все работает, но как перезагрузка- лед гаснет и надо все сначала его включать. вот код если кто поможет

void sliderWebSocket( char* data, AsyncWebSocketClient *client) {
val = atoi(data);
val = map(val, MIN, MAX, 0, 255);
Serial.println(val);
Здравствуйте. Можете поделиться наработками?
 

Goldz

Member
Всем доброго дня! Нужна помощь!
Хочу передать файл с ПК на ESP сервер

Со стороны страницы выбираю файл и отправляю его на сервер ESP по websocket
//*** websocket Setup ***
var connection;
connection = new WebSocket('ws://' + window.location.hostname + ':81/');
connection.onmessage = function (e)
{
//...............
}
//*** websocket Setup End ***
Button4.onclick = function(e)
{

var input = document.createElement('input');
input.type = 'file';
var reader = new FileReader();

input.onchange = e =>
{
var fileUp = e.target.files[0];
let fileLen=fileUp.size;
reader.readAsArrayBuffer(fileUp);

reader.onload = function loaded(evt) {
var binaryString = evt.target.result;
connection.send(binaryString);
}

}
input.click();
}
На стороне ESP

void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length)
{
Serial.print("WStype = "); Serial.println(type);
Serial.print("WS payload = ");

for(int i = 0; i < length; i++) { Serial.print((char) payload); }
Serial.println();
}

На мониторе порта вижу

WStype = 1
WS payload =
[0] Disconnected!

Т.е. ни чего не передано, соединение закрыто
Перелопатил массу сайтов, не помогло

Подскажите что не так делаю
 

Roborlex

New member
Здравствуйте. Приминительно к Андройду и связи с esp посредством сокетов. У меня был абсолютно такой же результат, как и у DernKov. После чего я нашел решение: https://www.esp8266.com/viewtopic.php?f=160&t=16741. Необходимо написать инициализацию через Draft: mWebSocketClient = new WebSocketClient(uri, new Draft_17()).
Важно!!! Просто так из коробки, с последней версией Draft_17() найден не будет. Необходимо использовать версию 1.3.0: implementation "org.java-websocket:Java-WebSocket:1.3.0".
Всем добра)
 
Сверху Снизу