我有两项服务:资源管理器(RM)和培训。
RM 是 websocket服务器,而 Training 是 websocket客户端。我在客户端和服务器端都使用 python-socketio 。 我在RM上收到一个 HTTP请求,根据该请求,我必须触发事件以训练服务。
我为Training Service编写了一个python脚本,该脚本接受套接字连接,进行一些计算,然后将事件触发回RM。这是培训服务的代码:
import socketio
client_socket = socketio.Client()
@client_socket.event
def connect():
print('connection established')
client_socket.emit('register', 'training')
@client_socket.on('train')
def start(input_dict):
print("Training triggered!")
#do some computation
client_socket.emit('training_completed', { 'status': False})
client_socket.connect('http://localhost:8000')
client_socket.wait()
RM是一个django应用程序,它存储Training服务的套接字ID并触发事件:
def start_training(request):
# fetch socket id of training service
sid = servicename_to_socketid_map.get('training', None)
socket_server.emit('train', {'data': training_inp}, room=sid)
return JsonResponse({
'status': 1,
'msg': 'Training started!!'
})
我能够连接到Training服务,但是我尝试将事件发送给特别是Training,但无法接收该事件。你能告诉我我做错了什么吗?
P.S。 :我已经有了 wsgi.py 文件的必要机会,以便将python-socketio与django一起使用
谢谢