我试图从服务器接收推送作为客户端;使用我的测试客户端如下:
客户端:
socket_client = socketio.test_client(app)
@socketio.on('hit_client')
def recieve_message(json_data):
print("Server has called!")
服务器:
socketio.emit('hit_client', 'Hi Client!')
服务器应该推送并呼叫hit_client
频道,但不会被解雇。但是,socket_client.get_received()
具有发出的数据。我认为WebSockets的重点是双向通信(即推送功能触发器)!
这是一个非常简单的设置,它似乎甚至没有工作......任何帮助都会非常感激。我几个小时都在砰地一声。
答案 0 :(得分:1)
测试客户端不是Socket.IO客户端。它的唯一目的是帮助您为Socket.IO服务器编写单元测试。它在概念上与Flask的HTTP路由测试客户端类似。只在单元测试中使用它才有意义。
当服务器向客户端发送内容时,测试客户端将只存储它并通过get_received
调用在测试代码中访问它。它不会触发任何事件,因为这不是它的预期目的。
如果你想在python中实现一个Socket.IO客户端,那就有一个包:https://pypi.python.org/pypi/socketIO-client。使用此包,您可以编写一个连接到Socket.IO服务器的Python脚本,并可以发送和接收事件。