我想创建一个网页,使用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,制作实时新闻是好还是比它更好。
答案 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对了解节点操作的基础知识非常有用。
希望有所帮助。