diff --git a/rosbridge_server/scripts/rosbridge_websocket.py b/rosbridge_server/scripts/rosbridge_websocket.py index 572e47a28..bbec7f6be 100755 --- a/rosbridge_server/scripts/rosbridge_websocket.py +++ b/rosbridge_server/scripts/rosbridge_websocket.py @@ -124,6 +124,15 @@ def __init__(self): print("--address argument provided without a value.") sys.exit(-1) + url_path = self.declare_parameter("url_path", "/").value + if "--url_path" in sys.argv: + idx = sys.argv.index("--url_path") + 1 + if idx < len(sys.argv): + url_path = str(sys.argv[idx]) + else: + print("--url_path argument provided without a value.") + sys.exit(-1) + retry_startup_delay = self.declare_parameter("retry_startup_delay", 2.0).value # seconds. if "--retry_startup_delay" in sys.argv: idx = sys.argv.index("--retry_startup_delay") + 1 @@ -137,9 +146,11 @@ def __init__(self): # Done with parameter handling # ################################################## - application = Application( - [(r"/", RosbridgeWebSocket), (r"", RosbridgeWebSocket)], **tornado_settings - ) + handlers = [(r"/", RosbridgeWebSocket), (r"", RosbridgeWebSocket)] + if url_path != "/": + handlers = [(rf"{url_path}", RosbridgeWebSocket)] + + application = Application(handlers, **tornado_settings) connected = False while not connected and self.context.ok():