2016-07-25 4 views
1

私は現在、このような.NETのプッシャーにメッセージを送信しています:プッシャーは非ASCII(JSON)形式のトランスポートペイロードを許可していますか?

var result = pusher.Trigger("channel-1", "test_event", new { message = "hello world" }); 

と、次のようにJavaScriptでそれらを受け取る:

var pusher = new Pusher('APP_KEY'); 
var channel = pusher.subscribe('channel-1'); 
channel.bind('test_event', function(data) { 
     // process 
    } 
); 

別のペイロードを送信することも可能です(より小さい)フォーマット、例えばProtocol Buffers?

答えて

1

送信するデータがJSONオブジェクトの文字列フィールドまたはクエリ文字列パラメータとして使用されるため、バイナリデータを送信することはできません。POSTがPusherに設定されている場合。これは、HTTP API referenceに記載されています。

あなたができることは、protobufでバイナリにエンコードし、結果のバイナリをbase64エンコーダで文字列としてエンコードすることです。

問題は.NETライブラリです。これは、送信するデータをobjectとして受け取り、内部的にJSONとしてエンコードします。 HTTP APIに直接ポストするか、objectの代わりにstringを受け取るトリガーメソッドを公開するように.NETライブラリを変更する必要があります。

関連する問題