Я реализую socket.io в node.js для проекта Windows Azure. Я должен отправлять данные всем подключенным клиентам через регулярные промежутки времени.
Я новичок в node.js, но думаю, многопоточность невозможна. Цель socket.io заключается в поддержке приложений реального времени, так же как я могу отправлять данные непрерывно всем подключенным клиентам через равные промежутки времени, а также обрабатывать любые данные, которые клиенты отправляют на сервер socket.io одновременно?
EDIT:
Это примерно моя реализация 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);
}