簡體   English   中英

每10秒鍾通過socket.io發送數據

[英]Send data every 10 seconds via socket.io

我正在嘗試構建一個Web應用程序,該應用程序在地圖上顯示一個點並每10秒更新一次其位置。 我現在解決的方法是每10秒通過javascript超時輪詢一個頁面並解析結果。 這可以正常工作,但是很顯然,當有多個瀏覽器輪詢同一網頁時,Web服務器資源會急劇增加。 即使在添加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方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM