javascript - 通过 socket.io 每 10 秒发送一次数据

标签 javascript node.js socket.io

我正在尝试构建一个网络应用程序,它在 map 上显示一个点并每 10 秒更新一次它的位置。 我现在解决它的方法是每 10 秒通过 javascripts 超时轮询一个页面并解析结果。这工作正常,但是当有多个浏览器轮询同一个网页时,网络服务器资源显然会激增。即使添加 memcached 作为中间体。

我的下一个想法是每 10 秒用最新的位置信息轮询一次页面,只需创建一个开放的套接字并通过它发送新数据。

所以在搜索之后,我偶然发现了 socket.io,它应该完全符合我的要求,但我没有让它工作。

即使像下面这样的基本东西也行不通;它只在控制台中显示一次 hello world 数据。而不是每一秒...... 这里出了什么问题?

服务器

var io = require('socket.io').listen(1332);
io.sockets.on('connection', function (socket) {

    setTimeout(function(){
        sentPosition(socket);
    }, 1000);
});

function sentPosition(socket){
    socket.emit('position', { 
            hello: 'world' 
        });
}

浏览器

var socket = io.connect('http://myserver.com:8080');
socket.on('position', function (data) {
    console.log(data);
});

最佳答案

改用javascript的setinterval方法

关于javascript - 通过 socket.io 每 10 秒发送一次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23384791/

相关文章:

javascript - 如何在数组上调用 .getJSON?

javascript - 如何通过单击按钮从 Kendo UI 加载图表

node.js - 在 mac 上安装 JSDOM 的问题

windows - 应该将 npm 全局安装在 AppData\Roaming 中吗?

javascript - 使用express.io 将 Angular Controller 转换为实时数据

javascript - JavaScript 中奇怪的意外 token ILLEGAL

javascript - 功能组件内的状态初始化(无无限循环)

javascript - 在异步环境中保持 Node 函数参数的安全

javascript - Node JS fs.createReadStream 运行浏览器内存不足

node.js - Arduino 和 NodeJS 之间的连接