io.js 1.04 KB
var socket = require('socket.io');

var io = socket.listen(1923);

var users = [];
var messages = [];

var names = [];

io.on('connection', function(client){


    client.on('join', function(name){

        client.join('chat');

        users.push(name);
        names[client.id] = name;

        client.emit('users', users);
        client.emit('messages', messages);
        client.emit('joined', true);
        client.broadcast.emit('adduser', name);
    });


    client.on('send', function(message){

        var data = {
            name: names[client.id],
            message: message
        };

        if(messages.length > 10){
            messages.splice(0, 10);
        }

        messages.push(data);

        io.emit('onmessage', data);

    });


    client.on('disconnect', function(){

        var name = names[client.id];


        delete names[client.id];

        var index = users.indexOf(name);

        if(index!=-1){
            delete users[index];
        }
		users = users.filter(Boolean)

        io.emit('users', users);

    });


});