Python 连接Flask Socket.IO服务器和Flatter

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

基本上,我有一个套接字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
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