socket.io setinterval方式

use*_*313 6 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);
Run Code Online (Sandbox Code Playgroud)

服务器:

    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);
        });
    });
Run Code Online (Sandbox Code Playgroud)

这是主电源代码,但我的问题是关于INTERVAL,制作实时新闻还是有好办法.

Fir*_*ero 13

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

在服务器上

setInterval(function(){
    socket.emit('news_by_server', 'Cow goes moo'); 
}, 1000);
Run Code Online (Sandbox Code Playgroud)

在客户端

socket.on('news_by_server', function(data){
  alert(data);
});
Run Code Online (Sandbox Code Playgroud)

  • 当你在服务器上编写`socket.emit(...`,什么是`socket`?我得到一个错误,说'socket`没有定义..谢谢 (4认同)