已變更 @microsoft/signalr-protocol-msgpack 中的 MessagePack 程式庫

@microsoft/signalr-protocol-msgpack npm 套件現在參考 @msgpack/msgpack,而非 msgpack5。 此外,可以選擇性地傳入 MessagePackHubProtocol 的可用選項已變更。 已移除 MessagePackOptions.disableTimestampEncodingMessagePackOptions.forceFloat64 屬性,並且已新增一些新選項。

若要查看相關討論,請參閱 https://github.com/dotnet/aspnetcore/issues/30471

導入的版本

ASP.NET Core 6.0

舊的行為

在舊版本中,您必須包括三個指令碼參考,才能在瀏覽器中使用 MessagePack 中樞通訊協定

<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 中樞通訊協定

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

如果您想要直接在應用程式中使用 @msgpack/msgpack 套件,則會將其下載至您的 node_modules 目錄,而不是 msgpack5 套件。

最後,MessagePackOptions 具有新的其他屬性,並且移除 disableTimestampEncodingforceFloat64 屬性。

變更原因

這項變更的目的是要減少資產大小,以更輕鬆地取用套件,並新增更多可自訂性。

如果您先前在應用程式中使用 msgpack5,則需要在 package.json 檔案中新增程式庫的直接參考。

受影響的 API

下列 API 已移除:

  • MessagePackOptions.disableTimestampEncoding
  • MessagePackOptions.forceFloat64