2016-08-04 76 views
2

我试图从服务器作为客户端推送;用我的测试客户端如下:如何将通知推送到Flask-SocketIO中的测试客户端?

客户:

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

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

当服务器向客户端发出某些东西时,测试客户端将只存储它并通过get_received调用使其在测试代码中可访问。它不会发射任何事件,因为这不是它的预期目的。

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

+1

谢谢米格尔。我非常感谢你的回应! – echo

相关问题