2016-08-04 7 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

Thanks Miguel。私は本当に感謝しています! – echo