2016-07-25 13 views
1

我目前將消息發送到推在.NET這樣的:Pusher是否允許非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,或者修改.NET庫以公開觸發方法,該方法需要string而不是object