• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

htpps client

pvvx

Активный участник сообщества
как браузером спросить?
В современном браузере есть почти всё. Даже отладчики, не говоря уже о всевозможных приложениях и сервисах.
Можно например в самом браузере написать осциллограф работающий через USB-COM и наблюдать осциллограммы в 4k от проволочки воткнутой на вход ADC в чип за 80 рупь:
1607620684220.png
Вот только точек вертикального разрешения всё равно критически не хватает для 16 бит замеров...
адрес ресурса я знаю http://hd.stream.frequence3.net допустим этот
еще вопрос где посмотреть коды ошибок сокетов
E (1066683) webclient: No data in recv. Errno = 128
или
E (1211013) webclient: Client socket: 57 connect: 0 errno:113
Какие ещё коды ошибок? У ws они свои...
 

Pilnikov

Active member
errno 113, 128 и.т.д, где посмотреть перечень и какая за что отвечает?
 

pvvx

Активный участник сообщества
Да, и при чем тут url какой-то страницы? Парсер на сервере может иметь свои строки и кучу зависимостей. Т.е. только звонить и спрашивать если не опубликовано описание.
В эксплорере: это надо набрать наверно "who ip" и подобное, там посмотреть кому принадлежит, дальше зайти в почту и ...
Надо описывать как зарегить почту в эксплорере?
 

pvvx

Активный участник сообщества
errno 113, 128 и.т.д, где посмотреть перечень и какая за что отвечает?
Может вы научитесь правильно задавать вопросы - это почти гарантия получения правильного ответа.
А пока вы гадаете неизвестно о чем. Фантазируете?
Или как всегда в конце выяснится, что вам что-то не дали готовое или не принесли "на дом с пивом и ..."?
 

Pilnikov

Active member
я в курсе про правильные вопросы - если бы умел правильно задавать - спрашивал бы у гугля.
errno - это коды ошибок возвращаемых lwip websocket - есть же у них человеческое описание. errno 11 например это обрыв соединения.
 

pvvx

Активный участник сообщества
я в курсе про правильные вопросы - если бы умел правильно задавать - спрашивал бы у гугля.
errno - это коды ошибок возвращаемых lwip websocket - есть же у них человеческое описание. errno 11 например это обрыв соединения.
А как это относится к серверу и частной реализации ws на нем?
Lwip у вас на каком компе и какое отношение он имеет к браузеру из вашего вопроса?
Т.е. вообще не понятно о чем вы спрашиваете и ответы будут на свободную тему.
 

Pilnikov

Active member
Взаимодействие между клиентом и сервером начинается с запроса от клиента:

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 7

Ответ сервера имеет следующий вид:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat


вот это как проделать с помощью браузера?
 

pvvx

Активный участник сообщества
У меня google дает кучу по "lwip websocket". Какие-то реализации на STM32...
 

Pilnikov

Active member
А как это относится к серверу и частной реализации ws на нем?
Lwip у вас на каком компе и какое отношение он имеет к браузеру из вашего вопроса?
Т.е. вообще не понятно о чем вы спрашиваете и ответы будут на свободную тему.
Т.е. все зависит от реализации ws на конкретном сервере? или все таки ошибки может формировать клиент? Клиент -esp32 IDF 4.3 lwip ws....
 

pvvx

Активный участник сообщества
Взаимодействие между клиентом и сервером начинается с запроса от клиента:
.......хлам.....
вот это как проделать с помощью браузера?
В эксплорере это запрос с ws://.... или wss://...
Всё из той-же заметки от вики.

Проверить поддержку браузером WebSocket можно, пройдя по ссылке: http://caniuse.com/#feat=websockets
 

Pilnikov

Active member
static const char *err_strerr[] = {
"Ok.", /* ERR_OK 0 */
"Out of memory error.", /* ERR_MEM -1 */
"Buffer error.", /* ERR_BUF -2 */
"Timeout.", /* ERR_TIMEOUT -3 */
"Routing problem.", /* ERR_RTE -4 */
"Operation in progress.", /* ERR_INPROGRESS -5 */
"Illegal value.", /* ERR_VAL -6 */
"Operation would block.", /* ERR_WOULDBLOCK -7 */
"Address in use.", /* ERR_USE -8 */
"Already connecting.", /* ERR_ALREADY -9 */
"Already connected.", /* ERR_ISCONN -10 */
"Not connected.", /* ERR_CONN -11 */
"Low-level netif error.", /* ERR_IF -12 */
"Connection aborted.", /* ERR_ABRT -13 */
"Connection reset.", /* ERR_RST -14 */
"Connection closed.", /* ERR_CLSD -15 */
"Illegal argument." /* ERR_ARG -16 */
это про ошибки - вопрос снят
 

pvvx

Активный участник сообщества
Т.е. вопрос был об списке сообщений Lwip находящемся в самом Lwip, но не включенной опции их распечатки?
Тогда не ясна их связь с ws.
 

Pilnikov

Active member
Проверить поддержку браузером WebSocket можно, пройдя по ссылке: http://caniuse.com/#feat=websockets
Это все для проверки поддержки ws браузером. я в курсе, что хром поддерживает ws c 2009 года.
я немного о другом
как эхо сервером сделать то же http://hd.stream.frequence3.net, чтобы он ответил
Upgrade: websocket
Connection: Upgrade
 

Pilnikov

Active member
Т.е. вопрос был об списке сообщений Lwip находящемся в самом Lwip, но не включенной опции их распечатки?
Тогда не ясна их связь с ws.
я видимо путаюсь в определениях. Для меня темень темная кто генерит ошибки - lwip или ws.
 

pvvx

Активный участник сообщества
В Lwip ws вообще-то опционален, но если вы обращаетесь к нему в составе единой либы, то и номера возвращаемых ошибок скорее всего будут от него, т.к. это часть пакета входящая в либу. Тут опять-же надо смотреть описание используемой библиотеки - для вас это выливается "в писать письма". Для меня - посмотреть исходники. Т.е. у всех разный подход.
Но я не знаю и вы не объявили, что конкретно вы используете и какова задача. Это сильно сужает рамки поиска правильного ответа и не мотивирует сочинения на свободную тему (или гадание на кофейной гуще).

Во всяком случае (гадание на кофейной гуще по вашей тематике) событие connect или вызов callback по connect с ошибкой в значении "ERR_OK" должен говорить о правильном соединении (что ws ответил тоже правильным кодом "ошибки").
 

pvvx

Активный участник сообщества
Это все для проверки поддержки ws браузером. я в курсе, что хром поддерживает ws c 2009 года.
я немного о другом
как эхо сервером сделать то же http://hd.stream.frequence3.net, чтобы он ответил
Upgrade: websocket
Connection: Upgrade
Так-же я не вижу никаких обращений к ws из указанных вами ссылок в отладчике (F12) в эксплорере Chrome.
Есть обращения к кускам данных в виде:
Что наверняка является временным размещением куска m4a.
 

pvvx

Активный участник сообщества
А сам ресурс http://hd.stream.frequence3.net/ по запросу пустой страницы "/" грузит status.xsl в котором и есть текст и ссылки на другие сервера и на файлы типа
http://hd.stream.frequence3.net/abfcult.aac.xspf в которых xml типа:


XML:
<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1">
  <title/>
  <creator/>
  <trackList>
    <track>
      <location>http://hivane01.frequence3.net:80/abf.aac</location>
      <title>Sunnery James &amp; Ryan Marciano &amp; Nicola Fasano &amp; Adam Clay - Born Again (Babylonia)</title>
      <annotation>Stream Title: FREQUENCE 3 - DANCE AAC [Powered by IKOULA]
Stream Description: FREQUENCE 3 - DANCE AAC [Powered by IKOULA]
Content Type:audio/aacp
Bitrate: 64
Current Listeners: 0
Peak Listeners: 6
Stream Genre: Dance</annotation>
      <info>https://www.frequence3.com/</info>
    </track>
  </trackList>
</playlist>
 

Pilnikov

Active member
про ошибки

в файлике esp-idf\components\lwip\lwip\src\api\err.c

static const char *err_strerr[] = {
"Ok.", /* ERR_OK 0 */
"Out of memory error.", /* ERR_MEM -1 */
"Buffer error.", /* ERR_BUF -2 */
"Timeout.", /* ERR_TIMEOUT -3 */
"Routing problem.", /* ERR_RTE -4 */
"Operation in progress.", /* ERR_INPROGRESS -5 */
"Illegal value.", /* ERR_VAL -6 */
"Operation would block.", /* ERR_WOULDBLOCK -7 */
"Address in use.", /* ERR_USE -8 */
"Already connecting.", /* ERR_ALREADY -9 */
"Already connected.", /* ERR_ISCONN -10 */
"Not connected.", /* ERR_CONN -11 */
"Low-level netif error.", /* ERR_IF -12 */
"Connection aborted.", /* ERR_ABRT -13 */
"Connection reset.", /* ERR_RST -14 */
"Connection closed.", /* ERR_CLSD -15 */
"Illegal argument." /* ERR_ARG -16 */
};

/**
* Convert an lwip internal error to a string representation.
*
* @param err an lwip internal err_t
* @return a string representation for err
*/
const char *
lwip_strerr(err_t err)
{
if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_strerr))) {
return "Unknown error.";
}
return err_strerr[-err];
}

прописывается расшифровка ошибок lwip - но только до №16, а вот тут


"слегка" поболе вариантов
на днях займусь модернизацией char *err_strerr[]
 
Сверху Снизу