Node JS & socket.io - Основы отправки сообщений - PullRequest
0 голосов
/ 12 февраля 2012

Я возиться с Node JS и socket.io, и я немного растерялся. В следующем коде я сохраняю ссылки на сокет при создании, а затем передаю сообщения, полученные с консоли. все работает хорошо, но я чувствую, что это неправильный подход.

Ваши мысли?

var app = require('http').createServer(handler)
    , io = require('socket.io').listen(app)
    , fs = require('fs');

app.listen(80);

function handler(req, res) {
    fs.readFile('C:/node/index.html',
        function (err, data) {
            if (err) {
                res.writeHead(500);
                return res.end('Error loading index.html');
            }

            res.writeHead(200);
            res.end(data);
        });
}

var Sender = {
    sockets:[],
    sendMsg:function (msg) {
        for (var i = 0; i < Sender.sockets.length; i++) {
            Sender.sockets[i].emit('news', msg);
        }
    }
};


process.openStdin().addListener("data", function (text) {
    Sender.sendMsg(text.toString());
});

io.sockets.on('connection', function (socket) {
    //Saving reference
    Sender.sockets.push(socket);
});

1 Ответ

0 голосов
/ 12 февраля 2012

Действительно, вы можете удалить свой Sender и все ссылки на него.

process.openStdin().addListener("data", function (text) {
    io.sockets.emit('news', text.toString())
});

Это отправит сообщение всем подключенным клиентам.

Есть несколько примеров на http://socket.io/, Я предлагаю вам проверить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...