2012-02-10 5 views
4

私はクライアントにsocket.io + node.jsを使用して1秒ごとに彼の友人のニュースを提供するためのWebページを作りたいと思っています。socket.io setinterval way

マイコード:

クライアント:

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についてです、それは良いですリアルタイムのニュースを作るか、それより良い方法があります。

答えて

12

クライアントがニュースを尋ねる必要はありません。 1秒ごとに送信したい場合は、サーバーを強制的に使用できます。クライアントが接続されている限り、更新を受信します。接続されているクライアントがない場合は、ログに何も表示されません。クライアント

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

おかげで簡単なコードをしてくださいしたいです... '、サーバー上で' socket'とは何ですか? 'socket'が定義されていないというエラーが表示されます。ありがとう – user1194313

+4

探しに何をしたいこと、 – JakeTheSnake

+1

io.sockets.on( 'connection'、function(_socket_){ – outluch

1

これは標準的な方法です。 socket.ioのexample appsページをまだ見ていない場合は、setIntervalを使用してこれを行うbeibertweetの例があります。

また、このブログにはslightly more advanced exampleがあります。

プラス.. YouTubeでRyan Dahls's introが本当にノード操作の基本を理解するのに便利だとわかりました。

希望に役立ちます。

+0

上のサーバー

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

は、私はあなたが( 'socket.emitを書くとき、私は – user1194313

関連する問題