Geänderte MessagePack-Bibliothek in @microsoft/signalr-protocol-msgpack

Das npm-Paket @microsoft/signalr-protocol-msgpack verweist jetzt auf @msgpack/msgpack statt auf msgpack5. Außerdem wurden die verfügbaren Optionen geändert, die an ein MessagePackHubProtocol-Objekt übergeben werden können. Die Eigenschaften MessagePackOptions.disableTimestampEncoding und MessagePackOptions.forceFloat64 wurden entfernt, und es wurden einige neue Optionen hinzugefügt.

Weitere Informationen finden Sie unter https://github.com/dotnet/aspnetcore/issues/30471.

Eingeführt in Version

ASP.NET Core 6.0

Altes Verhalten

In früheren Versionen müssen Sie drei Skriptverweise einschließen, um das MessagePack-Hubprotokoll im Browser zu verwenden:

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

Neues Verhalten

Ab ASP.NET Core 6 benötigen Sie nur zwei Skriptverweise, um das MessagePack-Hubprotokoll im Browser zu verwenden:

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

Anstelle des msgpack5-Pakets wird das @msgpack/msgpack-Paket in das Verzeichnis node_modules heruntergeladen, wenn Sie es direkt in Ihrer App verwenden möchten.

Schließlich hat MessagePackOptions neue zusätzliche Eigenschaften, und die Eigenschaften disableTimestampEncoding und forceFloat64 wurden entfernt.

Grund für die Änderung

Diese Änderung wurde vorgenommen, um die Objektgröße zu verringern, die Nutzung des Pakets zu vereinfachen und weitere Anpassungsmöglichkeiten hinzuzufügen.

Wenn Sie zuvor msgpack5 in Ihrer App verwendet haben, müssen Sie in Ihrer package.js-Datei einen direkten Verweis auf die Bibliothek hinzufügen.

Betroffene APIs

Die folgenden APIs wurden entfernt:

  • MessagePackOptions.disableTimestampEncoding
  • MessagePackOptions.forceFloat64