Skip to content

Commit

Permalink
added a list with available users or clients
Browse files Browse the repository at this point in the history
  • Loading branch information
jettro committed Apr 10, 2011
1 parent 542faba commit 4e57706
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 2 deletions.
20 changes: 18 additions & 2 deletions public/javascript/local-socket-io.js
@@ -1,15 +1,31 @@
function message(obj) {
// $("#message").prepend("<div>Stringify : " + stringify(obj) + "</div>");

if ('message' in obj) {
$("#message").prepend("<div>" + obj.message[0] + " : " + obj.message[1] + "</div>");
} else if('chat' in obj) {
} else if ('chat' in obj) {
$("#chat").prepend("<div>" + obj.chat[0] + " : " + obj.chat[1] + "</div>");
} else if ('users' in obj) {
$(".user").remove();
for (var i = 0; i < obj.users.length; i++) {
$("#users").prepend("<div class='user'>" + obj.users[i] + "</div>")
}
} else {
$("#message").prepend("<div>" + obj.announcement + "</div>");
}
}

function stringify(message) {
if (Object.prototype.toString.call(message) == '[object Object]') {
return '~j~' + JSON.stringify(message);
} else {
return String(message);
}
}


function setName() {
message( {message: ['You','Name is set to: ' + $("#visitorName").val()]});
message({message: ['You','Name is set to: ' + $("#visitorName").val()]});
socket.send({newName: $("#visitorName").val()});
}

Expand Down
17 changes: 17 additions & 0 deletions socketio.js
Expand Up @@ -23,6 +23,7 @@ Socketio.prototype.init = function(app) {
if ('newName' in message) {
console.log("Received a new name: " + message.newName);
clients[client.sessionId] = message.newName;
sendClients(client);
return;
}
var msg = { chat: [clients[client.sessionId], message.message] };
Expand All @@ -33,8 +34,24 @@ Socketio.prototype.init = function(app) {

client.on('disconnect', function() {
client.broadcast({ announcement: client.sessionId + ' disconnected' });
removeClient(client.sessionId);
sendClients(client)
});
});

function removeClient(id) {
delete clients[id];
}

function sendClients(client) {
var curClients = [];
for (var i in clients) {
curClients[curClients.length] = clients[i];
}
console.log("Number of clients: " + curClients);
client.broadcast({users: curClients});
client.send({users: curClients});
}
};

module.exports = Socketio;
2 changes: 2 additions & 0 deletions views/socketio/index.jade
Expand Up @@ -12,6 +12,8 @@ div#information
form(action="javascript:sendMessage()")
textarea(id="newMessage", size="50", cols="20", rows="4")
input(type="submit",value="Send Message")
h2 Available users
div#users
div#message
div#chat

Expand Down

0 comments on commit 4e57706

Please sign in to comment.