summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/js/lib/ws.js11
-rw-r--r--server/index.js20
-rw-r--r--server/websocket.js34
-rw-r--r--views/partials/scripts.ejs1
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>