Windows Azure プロジェクトの node.js に socket.io を実装しています。接続されているすべてのクライアントに定期的にデータを送信する必要があります。
私はnode.jsは初めてですが、マルチスレッドは不可能だと思います。socket.io の目的はリアルタイム アプリケーションをサポートすることです。接続されているすべてのクライアントに定期的にデータを継続的に送信し、クライアントが socket.io サーバーに送信するデータを同時に処理する方法はありますか?
編集:
これはおおよそ私の socket.io 実装です
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('first', "connected");
socket.on('clientData', function (data) {
//processing the data
});
});
function requestQueue() {
// some processing
io.sockets.emit('broadcast', recordsQueue);
// should go to sleep for a time period
}
基本的に、接続されたクライアントに特定の間隔でデータを送信するスレッドのように、requestQueue メソッドを継続的に実行する必要があります。また、クライアントが「clientData」イベントにデータを送信した場合、データを受信して処理できるはずです。
どうすればそれができるかについて何か考えはありますか?
ありがとう
私の解決策:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('first', "connected");
socket.on('clientData', function (data) {
//processing the data
});
});
function requestQueue() {
var sleepTime = 0;
// calcuate sleepTime
io.sockets.emit('broadcast', recordsQueue);
// should go to sleep for a time period
if(sleepTime !=0)
setTimeout(function () { requestQueue() }, sleepTime);
}