[英]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.