Browse Source

maint: enable `websocket_ping_interval` by default in tornado server

wangweimin 3 years ago
parent
commit
4bc0a2d068
2 changed files with 6 additions and 0 deletions
  1. 3 0
      pywebio/platform/path_deploy.py
  2. 3 0
      pywebio/platform/tornado.py

+ 3 - 0
pywebio/platform/path_deploy.py

@@ -198,6 +198,9 @@ def path_deploy(base, port=0, host='',
     """
 
     utils.MAX_PAYLOAD_SIZE = max_payload_size = parse_file_size(max_payload_size)
+    # Since some cloud server may close idle connections (such as heroku),
+    # use `websocket_ping_interval` to  keep the connection alive
+    tornado_app_settings.setdefault('websocket_ping_interval', 30)
     tornado_app_settings.setdefault('websocket_max_message_size', max_payload_size)  # Backward compatible
     tornado_app_settings['websocket_max_message_size'] = parse_file_size(tornado_app_settings['websocket_max_message_size'])
     gen = _path_deploy(base, port=port, host=host,

+ 3 - 0
pywebio/platform/tornado.py

@@ -347,6 +347,9 @@ def start_server(applications, port=0, host='',
 
     utils.MAX_PAYLOAD_SIZE = max_payload_size = parse_file_size(max_payload_size)
 
+    # Since some cloud server may close idle connections (such as heroku),
+    # use `websocket_ping_interval` to  keep the connection alive
+    tornado_app_settings.setdefault('websocket_ping_interval', 30)
     tornado_app_settings.setdefault('websocket_max_message_size', max_payload_size)  # Backward compatible
     tornado_app_settings['websocket_max_message_size'] = parse_file_size(
         tornado_app_settings['websocket_max_message_size'])