Я пытаюсь использовать flask-socketio. Я запустил простой пример из документации, и он работал нормально. Я использую виртуальную среду
app.py
from flask import Flask, render_template
from flask_socketio import SocketIO
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, port=8000)
а в demo.py
использую клиентскую библиотеку socketio
демо.py
from socketIO_client import SocketIO, LoggingNamespace
def on_message_response(*args):
print('on_message_response', args)
with SocketIO('localhost', 8000, LoggingNamespace) as socketIO:
socketIO.emit('message', 'xxx', on_message_response)
socketIO.wait_for_callbacks(seconds=1)
Я установил eventlet
, и этот базовый пример работал нормально. Когда я запустил, я получил выводreceived message: xxx
Однако, когда я обновил файл app.py
и demo.py
до этого
app.py
from flask import Flask, render_template
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@socketio.on('message')
def handle_message(name, age):
print('We Welcome {} who is {} years old'.format(name,age))
if __name__ == '__main__':
socketio.run(app, port=8000)
демо.py
from socketIO_client import SocketIO, LoggingNamespace
def on_message_response(*args):
print('on_message_response', args)
with SocketIO('localhost', 8000, LoggingNamespace) as socketIO:
socketIO.emit('message', {'name':'Dipanshu', 'age':25}, on_message_response)
socketIO.wait_for_callbacks(seconds=1)
Не похоже, что app.py перезагружается или обновляется, потому что я продолжаю получать это
Файл "app.py", строка 10, в handle_message print('получено сообщение:' + сообщение) TypeError: должно быть str, а не dict
Я перезапускал app.py
несколько раз, но получаю ту же ошибку. Я также попытался удалить eventlet
и запустить его с помощью сервера Flask, как и другие приложения Flask, но все было по-прежнему.
def handle_message(message)
? - person dvnguyen   schedule 06.01.2018handle_message
с помощью указанной ниже функции, так что да. - person Dipanshu Juneja   schedule 06.01.2018app.py
? - person dvnguyen   schedule 06.01.2018cat app.py
, чтобы проверить его содержимое. - person dvnguyen   schedule 06.01.2018cat
. Но я не понимаю, как это было бы возможно, потому что я, очевидно, сохранил файл, как и любой другой файл. Хотя я сомневаюсь, но может ли он что-то сделать со мной, используя виртуальную среду? - person Dipanshu Juneja   schedule 06.01.2018