Specifying the `async_mode` parameter seems to have been a workaround for packaging on Windows and macOS. If not given, flask_socketio.SocketIO will probe for an available asynchronous model, e.g. `eventlet`, and otherwise gets stuck if `gevent-socketio` is not available. c.f. https://github.com/onionshare/onionshare/commit/ec7fa4ef16c9e1ba6028ee927c23f76c399a17a6 and https://github.com/onionshare/onionshare/issues/1510 diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index 64844b5..7e1b095 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -164,10 +164,10 @@ class Web: elif self.mode == "chat": if self.common.verbose: self.socketio = SocketIO( - async_mode="gevent", logger=True, engineio_logger=True + logger=True, engineio_logger=True ) else: - self.socketio = SocketIO(async_mode="gevent") + self.socketio = SocketIO() self.socketio.init_app(self.app) self.chat_mode = ChatModeWeb(self.common, self)