我正在开发一些“智能家居”物联网东西,我想做的是让我的物联网设备使用 websocket 连接到我的服务器,并将我的服务器作为“根 Node ”,让它托管 GUI,然后让客户端也使用 WebSocket 连接到服务器。
目前,我正在使用 ESP8266-01 开发门传感器,目前我正在工作的是 ESP 01 上托管的 GUI 网站,然后我使用 WebSocket 从客户端(通过路由器)直接连接到它,它工作得非常好,从传感器被触发到在 GUI 中更新时有效地具有“零”延迟,但我想要的是传感器被触发,它连接到托管 GUI 的服务器,然后使用 WebSocket 连接到客户端并且仍然保持“零”延迟。
所以我的问题是我应该在服务器端做什么?因为目前它非常简单,它只是一个 HTML 网页和 javaScript,当我将客户端连接到 ESP 时,它会发送数据,但是如果我想要一个始终连接到 IOT 设备记录数据并更新 GUI 的服务器,而无需客户端直接连接到 IOT 设备,我该怎么做?
希望我正在尝试做的事情有意义。
最佳答案
您的传感器发送数据,并且该数据可以存储在服务器上,即在您的智能手机(“客户端”)未连接到服务器时记录到服务器上的文件中。为此,您需要访问可以通过 Node 文件系统模块
获得的文件系统代码示例位于 Socket io / node js server - save string to txt file on server
First you get the file system library:
var fs = require('fs');
Then, you can just output like this:
fs.writeFile("log.txt", stringText, function(error) {
if(error) throw error; // Handle the error just in case
else console.log("Success!");
});
stringText
是您从套接字接收到 IoT 设备的数据
然后您的服务器上就有一个包含记录数据的文件(您还可以插入时间戳,...),您可以在客户端(智能手机)再次连接时处理该文件
( https://nodejs.org/api/fs.html , https://www.w3schools.com/nodejs/nodejs_filesystem.asp )
关于javascript - "smart home"物联网 WebSocket --> 服务器 WebSocket --> 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356183/