thelounge/lib/server.js

116 lines
1.5 KiB
JavaScript
Raw Normal View History

2014-03-04 17:31:52 +01:00
/**
* Module dependencies.
*/
var connect = require("connect");
2014-03-04 18:22:06 +01:00
var io = require("socket.io");
2014-03-04 17:31:52 +01:00
2014-03-04 20:40:27 +01:00
// Local library.
var models = require("../client/js/models.js");
2014-03-04 17:31:52 +01:00
/**
* Export module.
*/
module.exports = Server;
/**
* The Server class.
*
* @public
*/
function Server() {
2014-03-04 18:22:06 +01:00
/**
2014-03-04 22:50:43 +01:00
* Self reference.
2014-03-04 18:22:06 +01:00
*
* @private
*/
2014-03-04 22:50:43 +01:00
var self = this;
/**
2014-03-05 14:46:16 +01:00
* Active sockets managed by socket.io.
2014-03-04 22:50:43 +01:00
*
2014-03-05 14:46:16 +01:00
* @type {Object}
2014-03-05 18:33:11 +01:00
* @private
2014-03-04 22:50:43 +01:00
*/
2014-03-05 14:46:16 +01:00
2014-03-05 18:33:11 +01:00
var sockets;
2014-03-04 22:50:43 +01:00
/**
2014-03-05 14:46:16 +01:00
* List of networks.
2014-03-04 22:50:43 +01:00
*
2014-03-05 14:46:16 +01:00
* @type {Array<Network>}
2014-03-04 22:50:43 +01:00
* @public
*/
2014-03-05 14:46:16 +01:00
this.networks = [];
2014-03-04 22:50:43 +01:00
2014-03-04 17:31:52 +01:00
/**
2014-03-04 22:50:43 +01:00
* Start the server and listen for connections
* on the specified port.
2014-03-04 17:31:52 +01:00
*
2014-03-04 20:40:27 +01:00
* @param {Int} port
2014-03-04 17:31:52 +01:00
* @public
*/
this.listen = function(port) {
2014-03-05 18:33:11 +01:00
var app = connect()
.use(connect.static("client"))
2014-03-04 18:22:06 +01:00
.listen(port);
2014-03-05 18:33:11 +01:00
sockets =
2014-03-04 18:22:06 +01:00
io.listen(app).on("connection", this.init)
.sockets;
2014-03-04 17:31:52 +01:00
};
2014-03-04 18:22:06 +01:00
/**
* Initiate new socket connections.
*
* @param {Socket} socket
* @public
*/
this.init = function(socket) {
2014-03-05 18:33:11 +01:00
sockets.emit(
"init",
self.networks
);
socket.on(
"input",
function(input) {
self.handleUserInput(input)
}
);
2014-03-04 18:22:06 +01:00
};
2014-03-04 22:50:43 +01:00
/**
* Handle incoming inputs sent from clients.
*
* @param {String} input
* @public
*/
this.handleUserInput = function(input) {
2014-03-05 18:33:11 +01:00
var text = input.text;
if (text.charAt(0) != "/") {
console.log("MESSAGE: " + text);
return;
}
var args = text.substr(1).split(" ");
var cmd = args[0].toUpperCase();
switch (cmd) {
default:
console.log("COMMAND: " + cmd);
break;
}
2014-03-04 22:50:43 +01:00
};
2014-03-05 18:33:11 +01:00
2014-03-04 17:31:52 +01:00
};