diff --git a/examples/acknowledgements/app.js b/examples/acknowledgements/app.js
index 068030b..5b95e65 100644
--- a/examples/acknowledgements/app.js
+++ b/examples/acknowledgements/app.js
@@ -4,6 +4,7 @@ app.http().io()
// Setup the ready route.
app.io.route('ready', function(req) {
+console.log("me",this);
req.io.respond({
success: 'here is your acknowledegment for the ready event'
})
diff --git a/examples/acknowledgements/client.html b/examples/acknowledgements/client.html
index 3c3134b..093a6ad 100644
--- a/examples/acknowledgements/client.html
+++ b/examples/acknowledgements/client.html
@@ -1,9 +1,11 @@
diff --git a/lib/index.coffee b/lib/index.coffee
index c6887fb..20d7200 100644
--- a/lib/index.coffee
+++ b/lib/index.coffee
@@ -43,7 +43,6 @@ express.application.io = (options) ->
_.defaults options, defaultOptions
@io = io.listen @server, options
@io.router = new Object
- @io.middleware = []
@io.route = (route, next, options) ->
if options?.trigger is true
if route.indexOf ':' is -1
@@ -56,13 +55,14 @@ express.application.io = (options) ->
else
for key, value of next
@router["#{route}:#{key}"] = value
- @io.configure => @io.set 'authorization', (data, next) =>
+
+ @io.use => (data, next) =>
unless sessionConfig.store?
return async.forEachSeries @io.middleware, (callback, next) ->
callback(data, next)
, (error) ->
return next error if error?
- next null, true
+ next()
cookieParser = cookieParser()
cookieParser data, null, (error) ->
return next error if error?
@@ -78,17 +78,13 @@ express.application.io = (options) ->
sessionConfig.store.get sessionId, (error, session) ->
return next error if error?
data.session = new expressSession.Session data, session
- next null, true
-
+ next()
sessionId = cookieParserUtils.signedCookies rawCookie, sessionConfig.secret
data.sessionID = sessionId
sessionConfig.store.get sessionId, (error, session) ->
return next error if error?
data.session = new expressSession.Session data, session
- next null, true
-
- @io.use = (callback) =>
- @io.middleware.push callback
+ next()
@io.sockets.on 'connection', (socket) =>
initRoutes socket, @io
@@ -98,13 +94,12 @@ express.application.io = (options) ->
@io.sockets.emit.apply @io.sockets, args
@io.room = (room) =>
- new RoomIO(room, @io.sockets)
-
- layer = new expressLayer('',
- sensitive: undefined
- strict: undefined
- end: false
- , (request, response, next) =>
+ new RoomIO(room, @io.sockets)
+
+eioInitialize = ->
+ return (request, response, next) =>
+ # Since we are not in a this = app context at this moment...
+ self = request.app
request.io =
route: (route) =>
ioRequest = new Object
@@ -116,16 +111,11 @@ express.application.io = (options) ->
args = Array.prototype.slice.call arguments, 0
response.json.apply response, args
route: (route) =>
- @io.route route, ioRequest, trigger: true
+ self.io.route route, ioRequest, trigger: true
data: request.body
@io.route route, ioRequest, trigger: true
- broadcast: @io.broadcast
+ broadcast: self.io.broadcast
next()
- )
-
- @_router.stack.push layer
-
- return this
listen = express.application.listen
express.application.listen = ->
@@ -134,7 +124,11 @@ express.application.listen = ->
@server.listen.apply @server, args
else
listen.apply this, args
-
+
+lazyrouter = express.application.lazyrouter
+express.application.lazyrouter = ->
+ lazyrouter.apply this
+ @_router.use eioInitialize()
initRoutes = (socket, io) ->
setRoute = (key, callback) ->
@@ -158,6 +152,7 @@ initRoutes = (socket, io) ->
request.io.respond = respond
request.io.respond ?= ->
callback request
+ console.log io.router
for key, value of io.router
setRoute(key, value)
diff --git a/package.json b/package.json
index f3b3c9b..aa48aab 100644
--- a/package.json
+++ b/package.json
@@ -37,13 +37,13 @@
}
],
"dependencies": {
- "async": "0.1.22",
- "coffee-script": "1.4.0",
- "cookie-parser": "^1.1.0",
- "express": "^4.4.0",
- "express-session": "^1.2.1",
- "socket.io": "~0.9.16",
- "underscore": "1.4.3"
+ "async": "0.9.0",
+ "coffee-script": "1.9.1",
+ "cookie-parser": "^1.3.4",
+ "express": "^4.12.3",
+ "express-session": "^1.11.1",
+ "socket.io": "~1.3.5",
+ "underscore": "1.8.3"
},
"devDependencies": {
"request": "*",