2016-03-23 48 views
0

私は、PythonクライアントがSocketIOを使用してサーバーにメッセージを送信しようとしている状況があります。pythonを使用してサーバーにメッセージを送信するSocketIO

 {"ob":"house","ids":['54fjadb70f9756','39f1ax451f6567']} 

サーバは、次のメッセージが表示され、現在で:

{"args": [], "name": "{\"ids\": [\"54fjadb70f9756\", \"39f1ax451f6567\"], \"ob\": \"house\"}"} 

を示す

sock = SocketIO(url, None, ...) 
    message = {'ob': 'house', 
       'ids': ['54fjadb70f9756','39f1ax451f6567']} 
    self.sock.emit(message) 

下のサーバがフォローを期待するように私は、JSONメッセージを送信するためにsock.emitを使用しています無効なメッセージについて不平を言う。

サーバーが予想どおりにメッセージを受信するように、つまり元のメッセージ構造を指定して送信するにはどうすればよいですか。それは私がそれを送るときにメッセージの構造を変更しているemitは、元のメッセージ構造を保持することを上書きして変更することが可能ですか?私はそれをどのようにして行うのですか?

答えて

0

Socket.io .emit()には2つの引数があります。最初の引数はメッセージ名で、普通の文字列でなければなりません。 2番目の引数はオプションで、JSONでエンコードされたデータになります。

したがって、データをメッセージ名として送信しようとしています。それは動作しません。メッセージ名を作成し、そのメッセージ名の引数としてデータを送信する必要があります。

sock = SocketIO(url, None, ...) 
message = {'ob': 'house', 
      'ids': ['54fjadb70f9756','39f1ax451f6567']} 
sock.emit("someMessageName", message) 

その後、サーバー上で、あなたはその特定のメッセージ名のリスナーを持っている必要があり、そのメッセージリスナーが呼び出されたとき、あなたは、データを受け取ることができます。