Our first serious feature will be allowing users to choose a screen name and join the chat rooms. We'll need a view with a form where a user can submit their name. However, as part of this, we'll need a way to ask the server if this name has been taken yet.
For all this, we go back to the User
module, and add a method to the User.CollectionView
, using the following code:
addUser: function (name, callback, context) { App.Socket.io.emit('join', name, function (joined) { if (joined) App.name = name; callback.call(context joined); }); }
This method takes the name
that the user wants to use as well as a callback
function. Inside the method, we use another Socket.IO method: emit
. This is the flip side of the App.Socket.io.on
method we saw earlier in this class's initialize
method. The on
method listens for events while emit
actually makes the occurrence of the event. The emit
method takes at least one parameter; the name of the event that we're triggering. We...