support for websocket external port

This commit is contained in:
Per Qvarforth 2022-02-02 22:16:42 +01:00
parent 2afed98d35
commit 7164f0edad
3 changed files with 19 additions and 6 deletions

View File

@ -25,11 +25,14 @@ save_ogn_stations_with_missing_identity="0"
[websocket_server]
;; Websocket server host
host="localhost"
host="0.0.0.0"
;; Websocket server port (must be same as port specified in index.php)
;; Websocket server port, must be same as port specified in index.php (if not using a reverse proxy)
port="9000"
;; If you are using a reverse proxy you need to play with the "external_port" setting, otherwise it should be the same as "port"
external_port="9000"
;; Websocket server log output
error_log="~/trackdirect/server/log/wsserver_aprs.log"
@ -60,7 +63,7 @@ aprs_source_id1="1"
;; Allow time travel
;; Use this settings to disable/enable data requests with a time interval (this must be disabled for the OGN network)
allow_time_travel="1"
allow_time_travel="0"
;; Max default time in minutes (how old packets that will be included in the response)
;; This setting should be no more than 1440 for for the OGN network.

View File

@ -26,7 +26,8 @@ def master(options, trackDirectLogger):
try:
factory = WebSocketServerFactory(
"ws://" + config.websocketHostname + ":" + str(config.websocketPort))
"ws://" + config.websocketHostname + ":" + str(config.websocketPort),
externalPort = config.websocketExternalPort)
factory.protocol = trackdirect.TrackDirectWebsocketServer
resource = WebSocketResource(factory)
@ -66,7 +67,8 @@ def worker(options, trackDirectLogger):
trackDirectLogger.warning("Starting worker with PID " + str(workerPid))
factory = WebSocketServerFactory(
"ws://" + config.websocketHostname + ":" + str(config.websocketPort))
"ws://" + config.websocketHostname + ":" + str(config.websocketPort),
externalPort = config.websocketExternalPort)
factory.protocol = trackdirect.TrackDirectWebsocketServer
# Enable WebSocket extension "permessage-deflate".
@ -98,7 +100,7 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Track Direct WebSocket Server')
parser.add_argument('--config', dest='config', type=str, default=None,
help='The Track Direct config file, e.g. aprsdirect.ini')
help='The Track Direct config file, e.g. trackdirect.ini')
parser.add_argument('--workers', dest='workers', type=int, default=DEFAULT_WORKERS,
help='Number of workers to spawn - should fit the number of (physical) CPU cores.')
parser.add_argument('--fd', dest='fd', type=int, default=None,

View File

@ -62,6 +62,14 @@ class TrackDirectConfig(Singleton):
'websocket_server', 'host').strip('"')
self.websocketPort = int(configParser.get(
'websocket_server', 'port').strip('"'))
self.websocketExternalPort = self.websocketPort
try :
self.websocketExternalPort = int(configParser.get(
'websocket_server', 'external_port').strip('"'))
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
pass
self.errorLog = configParser.get(
'websocket_server', 'error_log').strip('"')
self.websocketFrequencyLimit = configParser.get(