更改了 @microsoft/signalr-protocol-msgpack 中的 MessagePack 库

npm 包 @microsoft/signalr-protocol-msgpack 现在引用 @msgpack/msgpack,而不是引用 msgpack5。 此外,更改了可选择性地传递到 MessagePackHubProtocol 的可用选项。 删除了 MessagePackOptions.disableTimestampEncodingMessagePackOptions.forceFloat64 属性,并添加了一些新选项。

有关讨论内容,请参阅 https://github.com/dotnet/aspnetcore/issues/30471

引入的版本

ASP.NET Core 6.0

旧行为

在以前的版本中,必须包含三个脚本引用才能在浏览器中使用 MessagePack Hub 协议

<script src="~/lib/signalr/signalr.js"></script>
<script src="~/lib/msgpack5/msgpack5.js"></script>
<script src="~/lib/signalr/signalr-protocol-msgpack.js"></script>

新行为

从 ASP.NET Core 6 开始,只需要两个脚本引用即可在浏览器中使用 MessagePack Hub 协议

<script src="~/lib/signalr/signalr.js"></script>
<script src="~/lib/signalr/signalr-protocol-msgpack.js"></script>

如果想要直接在应用中使用,则会将 @msgpack/msgpack 包(而不是 msgpack5 包)下载到 node_modules 目录中。

最后,MessagePackOptions 具有新的附加属性,并且删除了 disableTimestampEncodingforceFloat64 属性。

更改原因

进行此更改是为了减小资产大小、更简单地使用包并添加更多可定制性。

如果以前在应用中使用 msgpack5,则需要在 package.json 文件中添加对库的直接引用。

受影响的 API

删除了以下 API:

  • MessagePackOptions.disableTimestampEncoding
  • MessagePackOptions.forceFloat64