gpt4 book ai didi

Python socketio badnamespaceerror 在一台设备上出现异常,但在另一台设备上不起作用

转载 作者:行者123 更新时间:2023-12-02 18:58:55 24 4
gpt4 key购买 nike

大家好,我有以下代码,但由于某种原因,我不断收到以下错误,但它似乎可以在同事的电脑上运行。我们似乎无法弄清楚为什么这对我的不起作用。

我们还仔细检查了我们是否使用 dir() 导入相同的 socketio

我尝试在 sio.connect 和 sio.emit 中指定 namespace ,但仍然没有成功!

socketio.exceptions.BadNamespaceError:/不是连接的命名空间。

bearerToken = 'REDACT'

core = 'REDACT'
output = 'REDACT'


import socketio
import json

def getListeners(token, coreUrl, outputId):
sio = socketio.Client(reconnection_attempts=5, request_timeout=5)
sio.connect(url=coreUrl, transports='websocket')

@sio.on('mwedge:batch:stats')
def batchStats(data):
if (outputId in data['outputStats']):
listeners = data['outputStats'][outputId][16]
print("Number of listeners ", len(listeners))
ips = []
for listener in listeners:
ips.append(listener[1])
print("Ips", ips)

def authCallback(data):
print(json.dumps(data))

sio.emit(event='auth',
data={
'token': token
},
callback=authCallback)


getListeners(bearerToken, core, output)

最佳答案

Socket.IO 连接涉及客户端和服务器之间的大量交换。 connect() 函数启动此过程,但此过程在后台继续进行。当调用 connect 事件的处理程序时,连接结束。此时您可以发射。

您的代码的问题是您没有等到连接握手完成,因此您的 emit() 调用在建立连接之前发生。解决方案是添加一个 connect 事件处理程序,并将您的 emit() 调用移至此处。

作为补充说明,我建议您在调用 connect() 函数之前设置事件处理程序。

关于Python socketio badnamespaceerror 在一台设备上出现异常,但在另一台设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65851664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com