# node libraries socketio = (require 'socket.io') path = (require 'path') # my libraries FFTCGDB = (require './fftcgdb') FFTCGSOCKET = (http, dbfile, session) -> that = @ # create server socket @io = socketio http @io.use session # open fftcg db @db = new FFTCGDB dbfile # on new connection @io.on 'connection', (socket) -> that.__connection socket return FFTCGSOCKET::__connection = (socket) -> that = @ @session = socket.handshake.session console.log "session '#{@session.id}' connected" console.log "is user '#{@session.userID}'" if @session.userID socket.on 'disconnect', -> console.log "session '#{that.session.id}' disconnected" console.log "is user '#{that.session.userID}'" if that.session.userID socket.on 'register', (login, password) -> that.__register login, password socket.on 'login', (login, password) -> that.__login login, password FFTCGSOCKET::__login = (login, password) -> that = @ console.log '__login:', login, password @db.login login, password .then (login) -> that.session.userID = login that.session.save() console.log 'Login OK "%s"', login .catch (err) -> console.error 'error: "%s"', err FFTCGSOCKET::__register = (login, password) -> console.log '__register:', login, password @db.register login, password .then (login) -> console.log 'registered "%s"', login .catch (err) -> console.error 'error: "%s"', err FFTCGSOCKET::close = -> console.log '[FFTCGSOCKET] shutting down' if @db @db.close() .then (msg) -> console.log msg .catch (err) -> console.error err module.exports = FFTCGSOCKET