Я пытаюсь настроить базовый веб-сокет, используя flask-socketio и библиотеку javascript socket-io на переднем конце. Внешний интерфейс успешно регистрирует соединение. Однако в консоли Python мои сообщения журнала не работают, и нет никаких указаний на то, что сервер отвечает на мои запросы.
Все, что я получаю в консоли при подключении, это:
"GET /socket.io/?EIO=3&transport=polling&t=MJHl5WD HTTP/1.1" 200 -
127.0.0.1 - - [25/Jul/2018 09:58:58] "POST /socket.io/?EIO=3&transport=polling&t=MJHl5WQ&sid=b2a1f92c18e349c5a11df25e5001766c HTTP/1.1" 200 -
Таким образом, соединение работает, однако на задней панели ничего не выводится так, как должно.
Вот JS:
var socket=io('http://127.0.0.1:5000');
socket.on('connect',function(){
console.log("connected");
socket.emit('client_connected',{data:"testsend"});
});
socket.on('update',function(data){
console.log(data)
});
И питон:
import json
import urllib3
from bs4 import BeautifulSoup
from flask import Flask, jsonify, render_template, request
from flask_socketio import SocketIO, send, emit
app=Flask(__name__)
socketio= SocketIO(app)
if __name__ == '__main__':
socketio.run(app)
socketio.emit('update',{'data':"test"});
@socketio.on('client_connected')
def handle_client_connect_event(data):
print("connected")
print(str(data))
@socketio.on('disconnect')
def disconnected():
print('disconnected')
@socketio.on('connect')
def connected():
print('connected')
Ни одна из строк @socketio.on
не работает, и событие «обновление» тоже не работает. Помощь будет принята с благодарностью.
socketio.run()
? Это блокирующий вызов, вам необходимо определить события до вызоваrun()
. - person Miguel   schedule 28.07.2018