diff --git a/settings.json.template b/settings.json.template index 4894f897d..815009c27 100644 --- a/settings.json.template +++ b/settings.json.template @@ -29,6 +29,13 @@ */ + // restricts socket.io transport methods to JSONP-POLLING only + // which is needed for IE8 browsers with deactivated native XMLHTTP support + // see issue https://github.com/ether/etherpad-lite/pull/958 + // and https://github.com/ether/etherpad-lite/issues/245#issuecomment-4013455 + + "socketTransportProtocols" : ['xhr-polling', 'jsonp-polling', 'htmlfile'], + //The Type of the database. You can choose between dirty, postgres, sqlite and mysql //You shouldn't use "dirty" for for anything else than testing or development "dbType" : "dirty", diff --git a/src/node/hooks/express/socketio.js b/src/node/hooks/express/socketio.js index c2b9ff6c7..524bab3d9 100644 --- a/src/node/hooks/express/socketio.js +++ b/src/node/hooks/express/socketio.js @@ -36,10 +36,10 @@ exports.expressCreateServer = function (hook_name, args, cb) { }); }); - // there shouldn#t be a browser that isn't compatible to all + // there shouldn't be a browser that isn't compatible to all // transports in this list at once // e.g. XHR is disabled in IE by default, so in IE it should use jsonp-polling - io.set('transports', ['xhr-polling', 'jsonp-polling', 'htmlfile']); + io.set('transports', settings.socketTransportProtocols ); var socketIOLogger = log4js.getLogger("socket.io"); io.set('logger', { diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index fb2a592cb..2a7714979 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -57,6 +57,14 @@ exports.port = process.env.PORT || 9001; */ exports.ssl = false; +/** + * restricts socket.io transport methods to JSONP-POLLING only + * which is needed for IE8 browsers with deactivated native XMLHTTP support + * see issue https://github.com/ether/etherpad-lite/pull/958 + * and https://github.com/ether/etherpad-lite/issues/245#issuecomment-4013455 + **/ +exports.socketTransportProtocols = ['xhr-polling', 'jsonp-polling', 'htmlfile']; + /* * The Type of the database */