Merge branch 'master' into 2756-eventbus-in-workbench
[arvados.git] / services / api / config / initializers / eventbus.rb
index 2350b578c6e9aeae8b97749ad51e4251806947e4..4a6141ccf3c23d82c215ee5994090d8b3532e82b 100644 (file)
@@ -1,3 +1,16 @@
+require 'eventbus'
+
+# See application.yml for details about configuring the websocket service.
+
 Server::Application.configure do
-  config.middleware.insert_before ActionDispatch::Static, RackSocket
+  # Enables websockets if ARVADOS_WEBSOCKETS is defined with any value.  If
+  # ARVADOS_WEBSOCKETS=ws-only, server will only accept websocket connections
+  # and return an error response for all other requests.
+  if ENV['ARVADOS_WEBSOCKETS']
+    config.middleware.insert_after ArvadosApiToken, RackSocket, {
+      :handler => EventBus,
+      :mount => "/websocket",
+      :websocket_only => (ENV['ARVADOS_WEBSOCKETS'] == "ws-only")
+    }
+  end
 end