Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebSocket与同步服务器的长轮询_Javascript_Android_Websocket_Socket.io_Polling - Fatal编程技术网

Javascript WebSocket与同步服务器的长轮询

Javascript WebSocket与同步服务器的长轮询,javascript,android,websocket,socket.io,polling,Javascript,Android,Websocket,Socket.io,Polling,我们的服务器上运行着一个NodeJs应用程序,可以作为我们自己的产品在市场上为3000多台Android客户端设备提供服务 我们所有的Android设备都是24/7同时与我们的NodeJs服务器连接,以获取最新的数据和命令。我们已经为我们的设备开发了一个Android应用程序,用于连接Socket.IO服务器 问题: 我们目前在服务器网络中遇到了巨大的带宽,即使服务器和客户端之间没有批量数据交换,我们也只使用这些数据同时查看连接设备的数量 问题: 让我给你一个与我们真实场景类似的示例用例,假设我

我们的服务器上运行着一个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连接进行轮询,获取结果,然后断开连接,直到下次需要连接为止。