Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 已建立Flask socketIO连接,但未路由_Python_Flask_Socket.io - Fatal编程技术网

Python 已建立Flask socketIO连接,但未路由

Python 已建立Flask socketIO连接,但未路由,python,flask,socket.io,Python,Flask,Socket.io,对于我的项目,我必须将一个socketIO后端连接到另一个后端。为此,我使用Flask socketio和socketio客户端。两者的代码如下所示: (4743) accepted ('192.168.1.33', 53500) 192.168.1.33 - - [21/Oct/2020 15:48:31] "GET /socket.io/?EIO=3&transport=polling&t=1603291711742-0 HTTP/1.1" 200 371

对于我的项目,我必须将一个socketIO后端连接到另一个后端。为此,我使用Flask socketio和socketio客户端。两者的代码如下所示:

(4743) accepted ('192.168.1.33', 53500)
192.168.1.33 - - [21/Oct/2020 15:48:31] "GET /socket.io/?EIO=3&transport=polling&t=1603291711742-0 HTTP/1.1" 200 371 0.005033
(4743) accepted ('192.168.1.33', 53502)
客户:

从socketIO_客户端导入socketIO,LoggingNamespace
ip='192.168.1.41'
端口=8090
def句柄_aaa_响应():
打印('响应')
socketIO=socketIO(ip,端口)
socketIO.on('pingSuccess',on_aaa_响应)
socketIO.wait(秒=1)
服务器:

从烧瓶导入烧瓶,呈现_模板,jsonify,响应
从flask_socketio导入socketio,发射
TRACE_库=False
主机='0.0.0.0'
WEB_端口=8090
使用_PIN=False
def handle_connect():
打印('hello world')
发出('pingSuccess')
app=烧瓶(名称)
app.config['SECRET\u KEY']='SECRET!'
app.config['DEBUG']=True
socketio=socketio(应用程序,允许的cors_来源=“*”)
socketio.on('connect',handle\u connect)
尝试:
socketio.run(应用程序,
主机=主机,
端口=WEB\u端口,
日志(输出=真)
除键盘中断外:
打印(“***用户启动键盘中断”)
退出()
运行客户端和服务器时,服务器仅记录以下内容:

(4743) accepted ('192.168.1.33', 53500)
192.168.1.33 - - [21/Oct/2020 15:48:31] "GET /socket.io/?EIO=3&transport=polling&t=1603291711742-0 HTTP/1.1" 200 371 0.005033
(4743) accepted ('192.168.1.33', 53502)
这意味着服务器正在接受来自客户端的连接,但没有路由到服务器上的正确路由


我想知道如何改变它,使它能够进入正确的路径并打印“hello world:

socketio.on()
相反,从您在
client
脚本中使用的常规
socketio\u client
包中,
flask\u socketio
使用
.on()

因此,要将回调添加到
flask\u socketio
中的事件,您需要更改以下内容:

(4743) accepted ('192.168.1.33', 53500)
192.168.1.33 - - [21/Oct/2020 15:48:31] "GET /socket.io/?EIO=3&transport=polling&t=1603291711742-0 HTTP/1.1" 200 371 0.005033
(4743) accepted ('192.168.1.33', 53502)
。。。
socketio=socketio(应用程序,允许的cors_来源=“*”)
@socketio.on('connect')
def handle_connect():
打印('hello world')
发出('pingSuccess')
...

服务器端

@socketio.on('connect')
def test_connect():
    print('hello world')
    emit('pingSuccess')

接受这个答案,因为它解释了为什么我的代码是错误的,以及如何正确执行。干杯。