rc@74: var socket = io.connect(); rc@74: rc@74: socket.on('connect', function () { rc@74: $('#chat').addClass('connected'); rc@74: }); rc@74: rc@74: socket.on('announcement', function (msg) { rc@74: $('#lines').append($('

').append($('').text(msg))); rc@74: }); rc@74: rc@74: socket.on('nicknames', function (nicknames) { rc@74: $('#nicknames').empty().append($('Online: ')); rc@74: for (var i in nicknames) { rc@74: $('#nicknames').append($('').text(nicknames[i])); rc@74: } rc@74: }); rc@74: rc@74: socket.on('user message', message); rc@74: socket.on('reconnect', function () { rc@74: $('#lines').remove(); rc@74: message('System', 'Reconnected to the server'); rc@74: }); rc@74: rc@74: socket.on('reconnecting', function () { rc@74: message('System', 'Attempting to re-connect to the server'); rc@74: }); rc@74: rc@74: socket.on('error', function (e) { rc@74: message('System', e ? e : 'A unknown error occurred'); rc@74: }); rc@74: rc@74: function message (from, msg) { rc@74: $('#lines').append($('

').append($('').text(from), msg)); rc@74: } rc@74: rc@74: // dom manipulation rc@74: $(function () { rc@74: $('#set-nickname').submit(function (ev) { rc@74: socket.emit('nickname', $('#nick').val(), function (set) { rc@74: if (!set) { rc@74: clear(); rc@74: return $('#chat').addClass('nickname-set'); rc@74: } rc@74: $('#nickname-err').css('visibility', 'visible'); rc@74: }); rc@74: return false; rc@74: }); rc@74: rc@74: $('#send-message').submit(function () { rc@74: message('me', $('#message').val()); rc@74: socket.emit('user message', $('#message').val()); rc@74: clear(); rc@74: $('#lines').get(0).scrollTop = 10000000; rc@74: return false; rc@74: }); rc@74: rc@74: function clear () { rc@74: $('#message').val('').focus(); rc@74: }; rc@74: });