socket.io setinterval方式

时间:2012-02-10 15:56:44

标签: socket.io

我想创建一个网页,使用socket.io + node.js每隔1秒向客户端发送他朋友的消息。

我的代码:

客户:

var socket = io.connect('http://localhost:port');
socket.on('connect', function(){
    socket.emit('hello', 'Hello guest');
});
socket.on('news_by_server', function(data){
    alert(data);
});
setInterval(function(){
    socket.emit('news', 'I want news :D ');
}, 1000);

服务器

    var io = require('socket.io').listen(port);
    io.sockets.on('connection', function (socket) {
        socket.on('hello', function(data){
            console.log('new client connected');
        });
        socket.on('news', function(data){
            socket.emit('news_by_server', 1);
        });
    });

这是主电源代码,但我的问题是关于INTERVAL,制作实时新闻是好还是比它更好。

2 个答案:

答案 0 :(得分:13)

客户无需要求新闻。如果要每1秒发射一次,可以强制服务器 - 只要连接了客户端,它们就会收到更新。如果没有连接客户端,您将在日志中看到没有任何反应。

在服务器上

setInterval(function(){
    socket.emit('news_by_server', 'Cow goes moo'); 
}, 1000);

在客户端

socket.on('news_by_server', function(data){
  alert(data);
});

答案 1 :(得分:1)

这几乎是标准的做法。如果你还没有看过socket.io上的example apps页面,那么有一个beibertweet示例使用setInterval来做这件事。

此博客上还有一个slightly more advanced example

另外..我在YouTube上发现Ryan Dahls's intro对了解节点操作的基础知识非常有用。

希望有所帮助。