Created
January 20, 2013 00:02
-
-
Save Menencia/4575902 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Generated by CoffeeScript 1.3.3 | |
/* | |
SERVER | |
*/ | |
var app, cookie, db, express, fs, io, port, server; | |
port = 3000; | |
fs = require('fs'); | |
express = require('express'); | |
cookie = require('express/node_modules/cookie'); | |
app = express(); | |
server = require('http').createServer(app); | |
io = require('socket.io').listen(server); | |
app.locals.port = port; | |
app.configure(function() { | |
app.set('views', __dirname + '/views'); | |
app.set('view engine', 'jade'); | |
app.use(express.bodyParser()); | |
return app.use(express["static"](__dirname + '/public')); | |
}); | |
app.get('/', function(req, res) { | |
return res.render('index'); | |
}); | |
server.listen(port); | |
/* | |
DATABASE | |
*/ | |
db = require('mongojs').connect('ff-tcgo', ['users']); | |
io.sockets.authorization(function(handshakeData, accept) { | |
var cookies, login, password; | |
if (handshakeData.headers.cookie) { | |
cookies = cookie.parse(handshakeData.headers.cookie); | |
login = cookies.login; | |
password = cookies.password; | |
db.users.findOne({ | |
login: new RegExp('^' + login + '$', 'i'), | |
password: password | |
}, function(err, user) { | |
if (user !== null) { | |
return handshakeData.user = user; | |
} | |
}); | |
} | |
return accept(null, true); | |
}); | |
io.sockets.on('connection', function(client) { | |
return client.on('join', function(logins) { | |
db.users.findOne({ | |
login: new RegExp('^' + logins.login + '$', 'i') | |
}, function(err, user) { | |
if (!err && user) { | |
if (logins.password === '' && !user.registered) { | |
return client.set('user', user, function() { | |
return client.emit('user', user); | |
}); | |
} else if (user.password === logins.password) { | |
return client.set('user', user, function() { | |
return client.emit('user', user); | |
}); | |
} else { | |
return client.emit('error', 'wrong password'); | |
} | |
} else { | |
return client.emit('confirm registration'); | |
} | |
}); | |
return client.on('confirm', function(logins) { | |
return db.users.findOne({ | |
login: new RegExp('^' + logins.login + '$', 'i') | |
}, function(err, user) { | |
if (!err && user) { | |
return client.emit('error', 'Pseudo déjà pris !'); | |
} else { | |
user = { | |
login: logins.login, | |
password: logins.password | |
}; | |
db.save(user); | |
return client.set('user', user, function() { | |
return client.emit('user', user); | |
}); | |
} | |
}); | |
}); | |
}); | |
}); | |
/*io.of('/hall').on 'connection', (client) -> | |
console.log '+1' | |
nb_players++ | |
# update clients | |
io.sockets.emit 'nb_players', nb_players | |
client.on 'disconnect', -> | |
# old player | |
console.log '-1' | |
nb_players-- | |
# update clients | |
io.sockets.emit 'nb_players', nb_players | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment