From 31e5db050cf59e8ca507de8c34088d847a241aaa Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Tue, 9 Oct 2012 12:17:40 +0200 Subject: [PATCH] Feature #3937: Create action providing socket url --- .../java/de/thm/arsnova/SessionController.java | 11 +++++++++++ .../thm/arsnova/socket/ARSnovaSocketIOServer.java | 14 +++++++++++--- src/main/webapp/WEB-INF/spring/spring-main.xml | 2 +- src/main/webapp/arsnova.properties.example | 5 ++++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/thm/arsnova/SessionController.java b/src/main/java/de/thm/arsnova/SessionController.java index edd5df3c..b617a3c9 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 d37b11ea..97259883 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 8f11efeb..dfd1f886 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 9133b835..f62f81f0 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 -- GitLab