diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index 00e7db8654..48be8f0dbc 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -80,7 +80,8 @@ block content //- We need to do .replace(/\//g, '\\/') do that '' -> '<\/script>' //- and doesn't prematurely end the script tag. script(type='text/javascript'). - window.project_id = "!{project_id}" + window.project_id = "!{project_id}"; + window.websocketsUrl = "!{settings.websocketsUrl}"; window.userSettings = !{JSON.stringify(userSettings).replace(/\//g, '\\/')}; window.user = !{JSON.stringify(user).replace(/\//g, '\\/')}; window.csrfToken = "!{csrfToken}"; diff --git a/services/web/config/settings.defaults.coffee b/services/web/config/settings.defaults.coffee index d762514b7c..07ae5b6357 100644 --- a/services/web/config/settings.defaults.coffee +++ b/services/web/config/settings.defaults.coffee @@ -103,6 +103,14 @@ module.exports = templates: user_id: process.env.TEMPLATES_USER_ID or "5395eb7aad1f29a88756c7f2" + + # The websocket layer of ShareLaTeX runs as separate service. + # When running locally or in development, you can point the client to this + # service directly. If you are running behind a reverse proxy (Nginx, etc) + # then websocketsUrl should be the same as siteUrl, with your reverse + # proxy responible for sending websocket traffic to the websocket service + # rather than connecting directly. + websocketsUrl: "http://localhost:3026" # Where your instance of ShareLaTeX can be found publically. Used in emails # that are sent out, generated links, etc. diff --git a/services/web/public/coffee/ide/connection/ConnectionManager.coffee b/services/web/public/coffee/ide/connection/ConnectionManager.coffee index 30b8f00ac5..804fdea366 100644 --- a/services/web/public/coffee/ide/connection/ConnectionManager.coffee +++ b/services/web/public/coffee/ide/connection/ConnectionManager.coffee @@ -14,7 +14,7 @@ define [], () -> @$scope.$on "editor:change", () => @lastUpdated = new Date() - @ide.socket = io.connect null, + @ide.socket = io.connect window.websocketsUrl, reconnect: false "force new connection": true