summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-05 12:49:47 -0400
committerJules Laplace <jules@okfoc.us>2015-08-05 12:49:47 -0400
commit2f63919b30583b440727b250c2d0503b24f3d666 (patch)
tree95430856f827aa0db70902b405fa67d5290d0b2d /server
parent0b47720bad6a9c3b3447da97a89b91a1f8ab7d71 (diff)
socket stuff frm yesterday
Diffstat (limited to 'server')
-rw-r--r--server/index.js28
-rw-r--r--server/websocket.js34
2 files changed, 54 insertions, 8 deletions
diff --git a/server/index.js b/server/index.js
index 89ba350..64965b5 100644
--- a/server/index.js
+++ b/server/index.js
@@ -11,8 +11,10 @@ var http = require('http'),
multer = require('multer'),
path = require('path');
+var websocket = require('./websocket')
+
var app = express()
-var server
+var server, io
app.set('port', config.port)
app.set('views', path.join(__dirname, '../views'))
@@ -24,21 +26,31 @@ 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/index", {})
})
app.get("/v/:room", function(req,res){
+ var room = req.params.room
+ if (! (room in rooms)) {
+ rooms[room] = websocket.bind(room)
+ }
res.render("pages/room")
})
-
-server = http.createServer(app)
-server.listen(app.get('port'), function () {
- console.log('asdf-yt server listening on port ' + app.get('port'));
-})
-
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]
+ })
+
+ })
+}