diff options
| -rw-r--r-- | public/js/lib/ws.js | 11 | ||||
| -rw-r--r-- | server/index.js | 20 | ||||
| -rw-r--r-- | server/websocket.js | 34 | ||||
| -rw-r--r-- | views/partials/scripts.ejs | 1 |
4 files changed, 58 insertions, 8 deletions
diff --git a/public/js/lib/ws.js b/public/js/lib/ws.js index 15af8a1..3d62ef0 100644 --- a/public/js/lib/ws.js +++ b/public/js/lib/ws.js @@ -1,11 +1,12 @@ var ws = (function(){ var ws = {} - var socket, socketIsReady + var socket, ready ws.connect = function (room) { if (this.socket) return; - var socketPath = window.location.origin + '/' + room - ws.socket = socket = io(socketPath) + var path = window.location.origin + '/' + room + + ws.socket = socket = io(path) // this.socket.on('connect', function(){ console.log(new Date(), "connected")}) socket.on('ready', ws.ready) socket.on('error', ws.error) @@ -19,11 +20,11 @@ var ws = (function(){ console.log(new Date(), "ready") // presumably we might have reconnected? - if (socketIsReady) { + if (ready) { // this.chatView.fetchAndDedupe() } else { - socketIsReady = true + ready = true // this.checkIfLoaded() } } diff --git a/server/index.js b/server/index.js index d08cf2e..1843ae0 100644 --- a/server/index.js +++ b/server/index.js @@ -13,8 +13,10 @@ var http = require('http'), ws = require("./ws"), util = require("./util"); +var websocket = require('./websocket') + var app = express() -var server +var server, io app.set('port', config.port) app.set('view engine', 'ejs') @@ -26,12 +28,24 @@ app.use(require('cookie-parser')()) // app.use(require('body-parser')()) // app.use(require('multer')) app.use(express.query()) -// app.use(require('method-override')()) // app.set('trust proxy', true) // if (config.env.development) { // app.use(require('express-error-handler')) // } +server = http.createServer(app) +server.listen(app.get('port'), function () { + console.log('asdf-yt server listening on port ' + app.get('port')); +}) + +var io = websocket.init(server) + +var rooms = {} + +app.all('*', function(req, res, next){ + res.locals.config = config + next() +}) app.get("/", function(req,res){ res.render("pages/lobby", {}) }) @@ -51,4 +65,4 @@ server.listen(app.get('port'), function () { console.log('asdf-yt server listening on port ' + app.get('port')); }) -ws.listen(server)
\ No newline at end of file +ws.listen(server) diff --git a/server/websocket.js b/server/websocket.js new file mode 100644 index 0000000..ca54b68 --- /dev/null +++ b/server/websocket.js @@ -0,0 +1,34 @@ +var websocket = module.exports = {} +var io + +websocket.init = function(server){ + io = require('socket.io')(server) + return io +} + +websocket.bind = function(room){ + var room_socket = io.of('/' + room) + + var users = {}, messages = [] + + room_socket.on('connection', function(socket){ + + var nick + + socket.on("join", function(data){ + nick = data.nick + users[data.nick] = true + }) + + socket.on("msg", function(data){ + if (messages.length > 20) { messages.shift() } + messages.push(data) + room_socket.emit("msg", data) + }) + + socket.on("disconnect", function(){ + delete users[nick] + }) + + }) +} diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index 844d884..d67bdc0 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -1,3 +1,4 @@ +<script src="//[[- config.host ]]/socket.io/socket.io.js"></script> <script src="js/vendor/zepto.min.js"></script> <script src="js/vendor/lodash.min.js"></script> <script src="js/vendor/mx/mx.js"></script> |
