WebSocket Chat异步示例崩溃

rem*_*ada 5 python macos asyncsocket websocket uwsgi

我一直试图在Apple Mac上运行这里提供的websocket聊天示例. https://github.com/unbit/uwsgi/blob/master/tests/websockets_chat_async.py

但运行此示例会导致uwsgi中出现段错误.

我已经在websocket.py中复制粘贴了这个例子,并使用以下命令运行服务器

uwsgi --http :8080 --http-websockets --wsgi-file websocket.py --venv ../../python2-wow
Run Code Online (Sandbox Code Playgroud)

当我访问URL时,我得到了正确的连接建立消息.但随后服务器崩溃了这个段错误

!!! uWSGI process 29129 got Segmentation Fault !!!
*** backtrace of 29129 ***
0   uwsgi                               0x00000001078b5ec0 uwsgi_backtrace + 48
1   uwsgi                               0x00000001078b6371 uwsgi_segfault + 49
2   libsystem_platform.dylib            0x00007fff96b2c5aa _sigtramp + 26
3   ???                                 0x0000000000000000 0x0 + 0
4   uwsgi                               0x0000000107897b4e async_add_fd_read + 206
5   uwsgi                               0x00000001078c8979 py_eventfd_read + 89
6   Python                              0x00000001079d214d PyEval_EvalFrameEx + 8080
7   Python                              0x00000001079d0093 PyEval_EvalCodeEx + 1641
8   Python                              0x0000000107977796 PyFunction_SetClosure + 809
9   Python                              0x0000000107959f72 PyObject_Call + 101
10  Python                              0x00000001079d601f PyEval_CallObjectWithKeywords + 93
11  uwsgi                               0x00000001078c6dc7 python_call + 23
12  uwsgi                               0x00000001078c8df9 uwsgi_request_wsgi + 889
13  uwsgi                               0x000000010787b7e3 wsgi_req_recv + 291
14  uwsgi                               0x00000001078b38a5 simple_loop_run + 229
15  uwsgi                               0x00000001078ba6e2 uwsgi_ignition + 226
16  uwsgi                               0x00000001078ba5ae uwsgi_worker_run + 670
17  uwsgi                               0x00000001078b9d26 uwsgi_start + 5078
18  uwsgi                               0x00000001078b81a3 main + 7331
19  libdyld.dylib                       0x00007fff8c6ce5fd start + 1
*** end of backtrace ***
Run Code Online (Sandbox Code Playgroud)

崩溃显然是在这条线上

uwsgi.wait_fd_read(websocket_fd, 3)
Run Code Online (Sandbox Code Playgroud)

难倒在这里.需要帮忙.

jwa*_*ker 1

我让它可以使用--async=100--ugreen选项。

请注意,您可以使用更新的 API:本机 WebSocket 支持和通用的基于 gevent 的异步支持