diff --git a/lib/units/app/index.js b/lib/units/app/index.js index 50d13a91..b9b3cd69 100644 --- a/lib/units/app/index.js +++ b/lib/units/app/index.js @@ -1,4 +1,5 @@ var http = require('http') +var url = require('url') var express = require('express') var validator = require('express-validator') @@ -116,28 +117,19 @@ module.exports = function(options) { res.render('index') }) - app.get('/api/v1/appstate.js', function(req, res) { + app.get('/api/v1/app/state.js', function(req, res) { + var state = { + config: { + websocketUrl: (function() { + var wsUrl = url.parse(options.websocketUrl, true) + wsUrl.query.uip = req.ip + return url.format(wsUrl) + })() + } + , user: req.user + } res.type('application/javascript') - res.send('var GLOBAL_APPSTATE = ' + JSON.stringify({ - config: { - websocketUrl: options.websocketUrl - } - , user: req.user - }) - ) - }) - - app.get('/api/v1/angular-appstate.js', function(req, res) { - res.type('application/javascript') - res.send('angular.module("stf.app-state")' + - '.config(function(AppState){AppState.set(' + - JSON.stringify({ - config: { - websocketUrl: options.websocketUrl - } - , user: req.user - }) + - ')})') + res.send('var GLOBAL_APPSTATE = ' + JSON.stringify(state)) }) app.get('/api/v1/app/user', function(req, res) { diff --git a/lib/units/websocket/index.js b/lib/units/websocket/index.js index 2d63dca9..38617197 100644 --- a/lib/units/websocket/index.js +++ b/lib/units/websocket/index.js @@ -66,10 +66,12 @@ module.exports = function(options) { io.use(auth) io.on('connection', function(socket) { - var channels = [] - , user = socket.request.user + var req = socket.request + , user = req.user + , channels = [] - socket.emit('socket.ip', socket.request.ip) + user.ip = socket.handshake.query.uip || req.ip + socket.emit('socket.ip', user.ip) function joinChannel(channel) { channels.push(channel) @@ -672,7 +674,7 @@ module.exports = function(options) { .on('forward.test', function(channel, responseChannel, data) { joinChannel(responseChannel) if (!data.targetHost || data.targetHost === 'localhost') { - data.targetHost = socket.request.ip + data.targetHost = user.ip } push.send([ channel @@ -684,7 +686,7 @@ module.exports = function(options) { }) .on('forward.create', function(channel, responseChannel, data) { if (!data.targetHost || data.targetHost === 'localhost') { - data.targetHost = socket.request.ip + data.targetHost = user.ip } joinChannel(responseChannel) push.send([ diff --git a/res/app/views/index.jade b/res/app/views/index.jade index 6cc91a9f..9acc0c25 100644 --- a/res/app/views/index.jade +++ b/res/app/views/index.jade @@ -26,7 +26,7 @@ html(ng-app='app') div(growl) div(ng-view).fill-height - script(src='/api/v1/appstate.js') + script(src='/api/v1/app/state.js') script(src='static/app/build/entry/commons.entry.js') script(src='static/app/build/entry/app.entry.js') script(src='static/bower_components/stf-analytics/analytics.js')