Python 连接Flask Socket.IO服务器和Flatter
基本上,我有一个套接字io代码:Python 连接Flask Socket.IO服务器和Flatter,python,flutter,flask,dart,socket.io,Python,Flutter,Flask,Dart,Socket.io,基本上,我有一个套接字io代码: import cv2 import numpy as np from flask import Flask, render_template from flask_socketio import SocketIO, emit from threading import Lock,Timer as tmr from engineio.payload import Payload import base64 from PIL import Image impor
import cv2
import numpy as np
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from threading import Lock,Timer as tmr
from engineio.payload import Payload
import base64
from PIL import Image
import io
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@socketio.on('connect')
def connect():
print("a client connected")
@socketio.on('disconnect')
def disconnect():
print('Client disconnected')
@app.route('/')
def hello():
return render_template('index.html')
if __name__ == '__main__':
socketio.run(app,port=port,host= '0.0.0.0')
当我尝试将此代码连接到javascript时,它运行良好
然而,在《颤栗》中,我无法做到这一点
我有一个有状态的小部件,里面有一个按钮
当按下按钮时,我正在使用此功能连接到插座
import 'package:socket_io_client/socket_io_client.dart' as IO;
IO.Socket socket;
connectToSocket() {
socket = IO.io("http://10.0.2.2:6400", <String, dynamic>{
'transports': ['websocket', 'polling'],
});
socket.connect();
}
import'包:socket\u io\u client/socket\u io\u client.dart'作为io;
IO.插座;
connectToSocket(){
套接字=IO.IO(“http://10.0.2.2:6400", {
“传输”:[“websocket”,“轮询”],
});
socket.connect();
}
我无法连接,请帮帮我。我知道这是一个老问题,但希望这个答案能帮助其他人 这一问题可能是由于缺乏对Flitter中投票的支持造成的 发件人: 在飘动的环境中。它只适用于dart:io websocket,而不适用于dart:html websocket,因此在本例中,您必须在创建套接字实例时添加“transports”:[“websocket”] 安装eventlet后,socketio将在运行服务器时检测并使用它
您可以使用chrome重新检查正在使用的传输方式。在Windows中打开chrome开发工具
Ctrl+Shift+I
,然后转到。在每个网络请求中,您应该看到transport=polling
或transport=websocket
您是如何在这里启动flask服务器的?从主干网还是其他地方?还有-您在哪里呼叫connectToSocket()?谢谢您,先生。我相信它会帮助很多人,包括我:)谢谢。安装eventlet working fineHi后,我尝试在本地主机上运行flask socketio应用程序,但无法运行它。当我给app.host='localhost'时,它说在服务器http://[::1]/5000上运行,而flatter也没有连接到flask套接字。从过去的4天开始我一直在努力。我找不到修复程序:/。请帮忙。我已安装eventlet
IO.Socket socket = IO.io('http://localhost:3000', <String, dynamic>{
'transports': ['websocket'],
'extraHeaders': {'foo': 'bar'} // optional
});
pip install eventlet