2

サーバーからクライアントとしてプッシュを受信しようとしています。テストクライアントを次のように使用します。

クライアント:

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()は出力されたデータがあります。WebSocket の要点は双方向通信 (関数トリガーのプッシュ) だと思っていました。

これは非常に単純なセットアップであり、機能しているようにも見えません...どんな助けも非常に高く評価されます. 私は何時間も頭をバタンと閉めてきました。

4

1 に答える 1

2

テスト クライアントは Socket.IO クライアントではありません。唯一の目的は、Socket.IO サーバーの単体テストの作成を支援することです。これは、Flask の HTTP ルートのテスト クライアントと概念が似ています。単体テストでのみ使用するのが理にかなっています。

サーバーがクライアントに何かを送信すると、テスト クライアントはそれを保存し、get_received呼び出しを介してテスト コードでアクセスできるようにします。本来の目的ではないため、イベントは発生しません。

Python で Socket.IO クライアントを実装する場合は、そのためのパッケージがあります: https://pypi.python.org/pypi/socketIO-client。このパッケージを使用すると、Socket.IO サーバーに接続してイベントを送受信できる Python スクリプトを作成できます。

于 2016-08-04T21:28:55.733 に答える