【发布时间】:2018-05-21 00:27:05
【问题描述】:
首先,一点背景:
我正在尝试编写一个手机应用程序,它以不规则的时间间隔从 nodejs 服务器接收数据。由于这是一个移动应用程序,我不希望轮询服务器或使用 websocket,因为我相信这会耗尽电池电量。相反,我希望服务器跟踪客户端 IP 地址并推送数据。
我的计划是让应用程序在手机的连接状态发生变化时向服务器发送一条简单的消息(即,如果手机从 wifi 连接转到移动数据连接,则发送一条消息,因为客户端 IP 会发生变化) .服务器会做这样的事情:
app.get('/clientupdate',(req,res)=>{
// save off the 'res' object here
res.send('received update');
});
然后,当服务器想要向客户端推送数据时,它会检索保存的“res”对象并使用它来发送数据:
// retrieve the saved 'res' object here
res.send(data);
这可能吗?
【问题讨论】:
-
如果手机必须侦听来自服务器的传入数据,几乎肯定会比您每隔一段时间轮询服务器消耗更多的电池。
-
我想我可以测试一下,但我认为打开监听套接字会比常规轮询更便宜。立即交付并不重要,但我希望应用程序在 5 分钟内收到数据。所以轮询至少需要每 5 分钟一次