Firebase - переключение на протокол WebSocket - рукопожатие не работает - PullRequest
0 голосов
/ 24 января 2020

Я использую модуль Wi-Fi ESP-01 / ESP8266, чтобы установить SSL-соединение с моим проектом Google Firebase. Я уже могу записывать / читать в / из базы данных, используя протокол HTTP и REST API, и моя следующая цель - переключить протокол на WebSocket, чтобы сервер и клиент (моя доска объявлений) могли говорить по этому протоколу после начальной рукопожатие. В настоящее время я даже не заставляю хенджкинг работать, и в этот момент я застрял.

То, что я пробовал до сих пор:

(1) Сначала я открываю сокет TCP с SSL, подключаюсь к wss: //eletronica-ab6b1.firebaseio.com, порт 443 . Шаги SSL выполняются модулем Wi-Fi, одна из его функций - SSL / TLS.

(2) После установления соединения я отправляю на сервер следующий HTTP-пакет, фактически являющийся только заголовком HTTP без данных. Пакет: GET /January HTTP/1.1 Host: eletronica-ab6b1.firebaseio.com Upgrade: Websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

Это ответ сервера:

enter image description here

Почему я использовал «Январь»? Проверьте, это моя база данных:

enter image description here

Что мне нужно изменить, чтобы работать? Я имею в виду содержание заголовков, а также подключение к домену.

С уважением.

РЕДАКТИРОВАТЬ: Моя конечная цель: плата stabli sh постоянное TCP-соединение с сервером Firebase. Когда значение базы данных будет изменено, сервер будет уведомлен об этом через протокол, поэтому он не будет нуждаться в том, чтобы доска продолжала опрашивать сервер (каждые X секунд), чтобы узнать, изменилось ли значение. Я на правильном пути, чтобы достичь этого? Используете протокол WebSocket?

1 Ответ

1 голос
/ 24 января 2020

Я никогда не пробовал, но вы могли бы найти способ достичь чего-то похожего на веб-сокеты, используя gRp c https://firebase.google.com/docs/firestore/reference/rpc/

...