Подключение к веб-сокету Flask из кода Python - PullRequest
0 голосов
/ 27 мая 2019

Я заинтересован в создании двунаправленного обмена между сервером Flask и клиентом.Кажется, что веб-сокеты очень удобны для достижения моей цели.Но я застрял на реализации.Я создал простое приложение Flask с Flask-SocketIO, как описано в документации:

from flask_socketio import SocketIO
from flask import Flask

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@socketio.on('message')
def handle_message(message):
    print('received message: ' + message)

if __name__ == '__main__':
    socketio.run(app)

Клиент использует пакет websocket-client и выглядит следующим образом:

from websocket import create_connection

ws = create_connection("ws://localhost:5000")
ws.send("hello world")

В этой конфигурации он нене работает

Также я попытался использовать Flask-Sockets на стороне сервера:

from flask import Flask
from flask_sockets import Sockets    

app = Flask(__name__)
sockets = Sockets(app)


@sockets.route('/')
def echo_socket(ws):
    while not ws.closed:
        message = ws.receive()
        print(message)

if __name__ == '__main__':
    app.run()

Это также не работает.В некоторых местах я нашел несколько постов (например, там и там ) с "работающими" примерами, но на самом деле они все не работают.

Так можно ли делать то, что мне нужно?Если да, то как это сделать?Если нет, каковы альтернативы?

1 Ответ

0 голосов
/ 30 мая 2019

flask sokets.io на самом деле не являются веб-сокетами, это SocketsIO.Если кто-то хочет интегрировать настоящий WebSocket в свое приложение фляги, он может использовать этот проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...