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

本文关键字:格式 传输 负载 JSON 是否 许非 ASCII Pusher | 更新日期: 2023-09-27 17:58:33

我目前正在向.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
    }
);

是否可以以不同(较小)的格式发送有效载荷,例如协议缓冲区?

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

您不能发送二进制数据,因为当它被POST ed到Pusher时,您发送的数据被用作JSON对象中的字符串字段或查询字符串参数。这在HTTP API参考资料中有描述。

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

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