Какая версия Eventlet требуется для колбы-колбы? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь заставить eventlet работать с flask-socketio в Python 2.7.Вот код «голых костей», который я использую:

import eventlet
from flask import Flask
from flask_socketio import SocketIO
import threading
import time

def server():
        app = Flask(__name__)
        app.config['SECRET_KEY'] = 'asdf'
        socketio = SocketIO(app, host = '0.0.0.0')
        socketio.run(app)

server_thread = threading.Thread(target = server)
server_thread.start()

while True:
    time.sleep(1)

Когда я запускаю это на своем ноутбуке, кажется, это работает (flask-socketio использует eventlet).Но когда я запускаю это на встроенном устройстве, на котором оно предназначено, я получаю следующее сообщение:

Транспорт WebSocket недоступен.Установите eventlet или gevent и gevent-websocket для повышения производительности.

Существуют разные версии пакетов между двумя системами, и я подозреваю, что это является причиной сбоя.Вот пакеты во встроенной системе:

click==6.7
eventlet==0.18.4
Flask==0.12.2
Flask-SocketIO==3.3.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
pyserial==3.4
python-engineio==3.5.2
python-socketio==4.0.2
six==1.11.0
smbus==1.1
Werkzeug==0.12.2

Кто-нибудь знает, почему flask-socketio не сможет использовать eventlet с этими версиями?

Кроме того, я не знаю, еслиэто связано, но host = '0.0.0.0' также игнорируется (как на моем компьютере разработчика, так и на встроенном компьютере).Он работает на 127.0.0.1 всегда.

Есть идеи?

...