Pusher 是否允许非 ASCII (JSON) 格式的传输负载?

Does Pusher allow a transport payload in non-ASCII (JSON) format?

我目前正在像这样在 .NET 中向 Pusher 发送消息:

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?

您不能发送二进制数据,因为您发送的数据在 POSTed 到 Pusher 时用作 JSON 对象中的字符串字段或查询字符串参数。 HTTP API reference.

中对此进行了描述

您可以做的是使用 protobuf 将其编码为二进制,然后使用 base64 编码器将生成的二进制编码为字符串。

您将遇到的问题是 .NET 库。这会将您要发送的数据作为 object,并在内部将其编码为 JSON。您必须直接 post 到 HTTP API,或者修改 .NET 库以公开采用 string 而不是 object.[=15 的触发方法=]