如何在Flask-SocketIO中将通知推送到Test Client?

时间:2016-08-04 17:07:46

标签: python sockets socket.io flask-socketio flask-sockets

我试图从服务器接收推送作为客户端;使用我的测试客户端如下:

客户端:

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的重点是双向通信(即推送功能触发器)!

这是一个非常简单的设置,它似乎甚至没有工作......任何帮助都会非常感激。我几个小时都在砰地一声。

1 个答案:

答案 0 :(得分:1)

测试客户端不是Socket.IO客户端。它的唯一目的是帮助您为Socket.IO服务器编写单元测试。它在概念上与Flask的HTTP路由测试客户端类似。只在单元测试中使用它才有意义。

当服务器向客户端发送内容时,测试客户端将只存储它并通过get_received调用在测试代码中访问它。它不会触发任何事件,因为这不是它的预期目的。

如果你想在python中实现一个Socket.IO客户端,那就有一个包:https://pypi.python.org/pypi/socketIO-client。使用此包,您可以编写一个连接到Socket.IO服务器的Python脚本,并可以发送和接收事件。