【发布时间】:2020-05-30 04:09:23
【问题描述】:
我正在使用 ESP8266 wifi 模块进行此测试。 我想保持与 Google Firebase 的持续连接,以监视数据库值的变化并能够写入它,并且能够在同一连接上执行这两项操作。那可能吗?因为做事情分开他们工作。
这是我的测试数据库:
情况 1 - 工作 - 监控
(1) 打开与 eletronica-ab6b1.firebaseio.com 的 TCP/SSL 连接,端口 443。
(2) 发送如下HTTP数据包:
GET /database333.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pITU HTTP/1.1
Host: eletronica-ab6b1.firebaseio.com
Accept: text/event-stream
LINE FEED
(3) 这样做,每当“val”更改时,我都会收到通知,并且谷歌每 30 秒发送一个保持活动数据包。这行得通。
情况 2 - 工作 - 写
(1) 打开与 eletronica-ab6b1.firebaseio.com 的 TCP/SSL 连接,端口 443。
(2) 发送如下HTTP数据包:
PATCH /database333.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pITU HTTP/1.1
Host: eletronica-ab6b1.firebaseio.com
Content-Type: application/json
Content-Length: 13
"LINE FEED"
{"val":"555"}
(3) 这样做,值“555”被正确写入数据库。
情况 3 - 不起作用 - 尝试混合它们
(1) 打开与 eletronica-ab6b1.firebaseio.com 的 TCP/SSL 连接,端口 443。
(2)发送第一个HTTP包:
GET /database333.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pITU HTTP/1.1
Host: eletronica-ab6b1.firebaseio.com
Accept: text/event-stream
LINE FEED
(3) 此时我正在监视数据库中的变化,并且每 30 秒从 Google 接收一个保活数据包。好的,直到这里。
(4) 然后我发送以下 HTTP 数据包,尝试写入数据库:
"
PATCH /PIC.json?auth=DZSQwLoNWAneWA9BcEfAgnelmY965pq98HF4pITU HTTP/1.1
Host: eletronica-ab6b1.firebaseio.com
Content-Type: application/json
Content-Length: 13
LINE FEED
{"val":"333"}
(5) 这样做,我尝试使用相同的连接在数据库中写入,但是写入操作没有成功。
有人知道我做错了什么吗?
【问题讨论】:
标签: firebase rest firebase-realtime-database