Javascript WebSocket与同步服务器的长轮询
我们的服务器上运行着一个NodeJs应用程序,可以作为我们自己的产品在市场上为3000多台Android客户端设备提供服务 我们所有的Android设备都是24/7同时与我们的NodeJs服务器连接,以获取最新的数据和命令。我们已经为我们的设备开发了一个Android应用程序,用于连接Socket.IO服务器 问题:Javascript WebSocket与同步服务器的长轮询,javascript,android,websocket,socket.io,polling,Javascript,Android,Websocket,Socket.io,Polling,我们的服务器上运行着一个NodeJs应用程序,可以作为我们自己的产品在市场上为3000多台Android客户端设备提供服务 我们所有的Android设备都是24/7同时与我们的NodeJs服务器连接,以获取最新的数据和命令。我们已经为我们的设备开发了一个Android应用程序,用于连接Socket.IO服务器 问题: 我们目前在服务器网络中遇到了巨大的带宽,即使服务器和客户端之间没有批量数据交换,我们也只使用这些数据同时查看连接设备的数量 问题: 让我给你一个与我们真实场景类似的示例用例,假设我
我们目前在服务器网络中遇到了巨大的带宽,即使服务器和客户端之间没有批量数据交换,我们也只使用这些数据同时查看连接设备的数量 问题: 让我给你一个与我们真实场景类似的示例用例,假设我们有3000多个安卓设备,它们固定在许多公交车站,以显示下一条可用的公交车,但目前我们没有推送任何数据,尽管Socket.IO连接打开 我想知道这个用例的最佳解决方案和体系结构,我正在寻找针对这种情况的WebSocket和Long Polling的最佳建议 当我研究WebSocket可以在长时间轮询中保存更多数据时,我需要关于这方面的建议 提前谢谢 示例服务器:
const io = require('socket.io')(3000);
io.on('connection', socket => {
socket.send('Hello!');
socket.on('message', (data) => {
console.log(data);
});
});
后端和客户端使用什么语言?否则,我建议使用TCP套接字,并使用服务器时间戳来知道设备最后一次连接的时间。我会使用套接字进行长轮询,如果我没记错的话,长轮询使用的HTTP与TCP相比相当庞大。所以TCP可能是您最好的解决方案。@WLGfx我正在使用Nodejs@Ameer我可以知道一些关于NodeJS的解释吗,
net
模块可能是最简单的方法。Android设备可以使用TCP连接进行轮询,获取结果,然后断开连接,直到下次需要连接为止。