如何设置 SignalR 的 BinaryType

How to set BinaryType of SignalR

我在 JavaScript 中建立我的 signalrR 连接,如下所示:

$.connection.hub.start().done(function () {
  //do something         
});

在使用 WebSockets 时,我可以像这样设置 BinaryType 属性:

var wsUri = "ws://localhost:8080/whiteboard/websocket";
var websocket = new WebSocket(wsUri);
websocket.binaryType = "blob";

websocket.binaryType = "arraybuffer";

我可以为 SignalR 设置此 属性 吗?如果可以,如何设置?

不,你不能,至少在最新的官方发布版本 (2.x) 之前是这样。 SignalR 是物理连接上的一组分层抽象,其中所有这些抽象必须使用不同的传输策略(WebSockets 只是其中之一),因此它们必须代表一个共同的特征子集。

与所需数据类型 transmission/serialization 相关的任何内容都由 SignalR 自动处理,但使用 PersistentConnection 时的某些部分除外,其中只能使用 string。有一些 space 可以通过注入自定义实现来改变某些行为,但我认为这很难做到并且可能与 SignalR 的总体目标相冲突。