diff --git a/src/main/java/de/thm/arsnova/SessionController.java b/src/main/java/de/thm/arsnova/SessionController.java index edd5df3cffdbd2c3b01da64876d774ba2807aba2..b617a3c96156e728db720a545ce7cfb91ba8e84a 100644 --- a/src/main/java/de/thm/arsnova/SessionController.java +++ b/src/main/java/de/thm/arsnova/SessionController.java @@ -90,4 +90,15 @@ public class SessionController { response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value()); return null; } + + @RequestMapping(value="/socketurl", method=RequestMethod.GET) + @ResponseBody + public String getSocketUrl() { + StringBuilder url = new StringBuilder(); + + url.append(server.isUseSSL() ? "https://" : "http://"); + url.append(server.getHostIp() + ":" + server.getPortNumber()); + + return url.toString(); + } } diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java index d37b11ea2aca1f8d60b828c257d81c60d80dfd57..9725988323e790ae7ef19fe3e4e94c5ac37afde6 100644 --- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java +++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java @@ -37,13 +37,13 @@ public class ARSnovaSocketIOServer { private final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<UUID, User>(); private int portNumber; + private String hostIp; private boolean useSSL = false; private String keystore; private String storepass; private final Configuration config; private SocketIOServer server; - - + public ARSnovaSocketIOServer() { config = new Configuration(); } @@ -55,7 +55,7 @@ public class ARSnovaSocketIOServer { System.setProperty("java.net.preferIPv4Stack" , "true"); config.setPort(portNumber); - config.setHostname("0.0.0.0"); + config.setHostname(hostIp); if(useSSL) { try { InputStream stream = new FileInputStream(keystore); @@ -140,6 +140,14 @@ public class ARSnovaSocketIOServer { this.portNumber = portNumber; } + public String getHostIp() { + return hostIp; + } + + public void setHostIp(String hostIp) { + this.hostIp = hostIp; + } + public String getStorepass() { return storepass; } diff --git a/src/main/webapp/WEB-INF/spring/spring-main.xml b/src/main/webapp/WEB-INF/spring/spring-main.xml index 8f11efeb740cd5cd0a770ac82213869d6943d29e..dfd1f88677fb5809b6a3a517c14a320724997f41 100644 --- a/src/main/webapp/WEB-INF/spring/spring-main.xml +++ b/src/main/webapp/WEB-INF/spring/spring-main.xml @@ -64,7 +64,7 @@ <bean id="socketServer" class="de.thm.arsnova.socket.ARSnovaSocketIOServer" init-method="startServer" destroy-method="stopServer" scope="singleton" - p:portNumber="10443" p:useSSL="${security.ssl}" p:keystore="${security.keystore}" + p:portNumber="${socketio.port}" p:hostIp="${socketio.ip}" p:useSSL="${security.ssl}" p:keystore="${security.keystore}" p:storepass="${security.storepass}" /> </beans> diff --git a/src/main/webapp/arsnova.properties.example b/src/main/webapp/arsnova.properties.example index 9133b8352291e8fbb63804c3c61b7d469cdff06f..f62f81f0f6df3693b48854cba5a11f8ec278dda5 100644 --- a/src/main/webapp/arsnova.properties.example +++ b/src/main/webapp/arsnova.properties.example @@ -19,4 +19,7 @@ feedback.cleanup=10 couchdb.host=localhost couchdb.port=5984 -couchdb.name=arsnova \ No newline at end of file +couchdb.name=arsnova + +socketio.ip=0.0.0.0 +socketio.port=10443 \ No newline at end of file