Skip to content

Commit

Permalink
Added rooms selection and creation with GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
FrozenCow committed Aug 2, 2013
1 parent 806c905 commit 5ac2177
Show file tree
Hide file tree
Showing 6 changed files with 4,848 additions and 15 deletions.
21 changes: 19 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ function createRoom(name) {
networkServer.messageHandlers['down'] = handleKeyMsg;
networkServer.messageHandlers['setname'] = handleSetname;
var room = {
name: name,
simulator: simulator,
networkServer: networkServer
};
networkServer.onempty = onRoomEmpty.bind(room);
rooms[name] = room;
return room;
}
Expand All @@ -48,6 +50,10 @@ function createClientInRoom(ws,room) {

return client;
}
function onRoomEmpty() {
this.networkServer.close();
delete rooms[this.name];
}

function handleKeyMsg(msg) {
var simulator = this.server.simulator;
Expand Down Expand Up @@ -85,8 +91,8 @@ function handleSetname(msg) {
}
}

app.ws.usepath('/rooms/hallo',function(req,next) {
var roomName = 'hallo';
app.ws.usepath('/room',function(req,next) {
var roomName = req.query.name;
var room = getRoom(roomName) || createRoom(roomName);

if (!utils.contains(req.requestedProtocols,'game')) { console.log('Rejected'); return req.reject(); }
Expand All @@ -96,6 +102,17 @@ app.ws.usepath('/rooms/hallo',function(req,next) {
createClientInRoom(ws,room);
});

app.get('/rooms',function(req,res,next) {
res.json(
Object.keys(rooms).map(function(name) {
var room = rooms[name];
return {
name: name
};
})
);
});


app.listen(8085);

Expand Down
Loading

0 comments on commit 5ac2177

Please sign in to comment.