Skip to content

Releases: heroiclabs/nakama-dotnet

3.12.0

08 Apr 14:53
f01478c
Compare
Choose a tag to compare

Added

  • Satori: Added IApiLiveEvent.Id for accessing live event identifiers.
  • Satori: Added support for new Satori Messages API: IClient.GetMessageListAsync, IClient.UpdateMessageAsync and IClient.DeleteMessageAsync.

v3.11.0

08 Mar 14:07
9a5d17f
Compare
Choose a tag to compare

Added

  • Nakama: New IClient event called ReceivedSessionUpdated when session expires and is refreshed.
  • Nakama: New Session.Update method to allow for in-place updates to the session object.

Changed

  • Nakama: IsConnected and IsConnecting will now read directly from the underlying .NET socket status. This will allow application code to more quickly and easily detect connectivity loss arising from a lack of internet access.
  • Nakama: Default socket adapter changed from WebSocketAdapter to WebSocketStdlibAdapter. This was done to utilize the native .NET Websocket library for improved stability and maintenance.

Fixed

  • Nakama: Trying to connect a socket that is already connecting now results in a no-op instead of an error.

v3.10.0

21 Nov 19:31
9d7d414
Compare
Choose a tag to compare

Notable changes

Added

  • Nakama: Rank count is now returned with tournament record listings.
  • Nakama: Added ability to delete tournament records with DeleteTournamentRecordAsync.
  • Nakama: Hostnames passed to the client now preserve their hardcoded paths.
  • Nakama: Create and update times are now returned with notifications.
  • Nakama: Added Facebook Instant Games purchase validation.

Changed

  • Nakama: Mark socket as connected before event handler is called.
  • Nakama: Limited scope of retry logic to very specific 500-level codes from the server.

v3.9.0

11 Aug 18:17
f4b177a
Compare
Choose a tag to compare

Added

  • Satori: Added recompute option to UpdatePropertiesAsync which allows audiences to be recalculated on property update.

Changed

  • Satori: Decreased size of JSON payloads.

Fixed

  • Satori: DeleteIdentityAsync no longer accepts an explicit ID.

v3.8.0

09 Jun 19:55
fc73bea
Compare
Choose a tag to compare

Added

  • Nakama: Added Authoritative flag to tournaments returned from the server.
  • Nakama: Added RefundTime and UserId to purchases and subscriptions returned from the server.
  • Nakama: Added raw subscription provider information.
  • Nakama: Added DeleteAccountAsync for deleting user accounts.
  • Satori: Added DeleteIdentityAsync for deleting user identities.

Changed

  • Nakama: Used session.Username wherever outdated state might be returned.

Fixed

  • Nakama: Fixed issue where outgoing payloads could include unnecessary JSON.

v3.7.0

10 Mar 15:51
e99fa8a
Compare
Choose a tag to compare

Added

  • Nakama: Added an UpdatePresences utility to IMatch and IParty. Use this method as a helper to update the local tracking of your presences in your matches and parties when an IMatchPresenceEvent or IPartyPresenceEvent is dispatched.
  • Satori: Added optional default and custom properties that can be attached to authentication requests.

Changed

  • Satori: GetFlagDefault and GetFlagsDefault now use the apiKey passed to the client constructor rather than accepting it as a unique parameter.

v3.6.0

07 Feb 13:44
7ea2158
Compare
Choose a tag to compare

Added

  • Satori: Adds the Satori .NET SDK. Satori is our liveops server for game studios. Read more about it in the documentation.
  • Nakama: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.
  • Nakama: Expose the Logger object on IClient.
  • Nakama: Adds support for POST RPC requests when using HTTP key with a payload

Fixed

  • Nakama: Prevent race condition when Close is called while receive loop has an incomplete read buffer.
  • Nakama: Fixed an issue where 500 errors could cause parsing issues on the client.
  • Nakama: Added ability to specify path parameter to client urls.

Changed

  • Nakama: Fixed an issue where our websocket would throw an exception on CloseAsync() in certain situations.

v3.5.0

18 Sep 15:41
ccc9f35
Compare
Choose a tag to compare

Notable changes

Added

  • Ability to persist Apple, Huawei, and Google purchase receipts in the Nakama database. This is set to true by default in order to allow the server to detect replay attacks.
  • Add a SeenBefore property to IApiValidatedPurchase.
  • Add ListSubscriptionsAsync which returns a list of the user's subscriptions.
  • Add ValidateSubscriptionAppleAsync which returns details about a user's Apple subscription.
  • Add ValidateSubscriptionGoogleAsync which returns details about a user's Google subscription.
  • Add GetSubscriptionAsync which returns a subscription for the provided product ID.
  • Add support for countMultiple in AddMatchmakerAsync and AddMatchmakerPartyAsync.

Changed

  • ValidatedPurchaseEnvironment has been renamed to ApiStoreEnvironment.
  • ValidatedPurchaseStore has been renamed to ApiStoreProvider.
  • Removed obsolete client methods that accept a CancellationTokenSource. These have been replaced in favor of methods that accept a CancellationToken that were added in v3.3.

Fixed

  • Fix an issue with SocketClosed event taking a significant length of time or not firing at all when internet connection is lost.
  • Fix an issue that would occur when sending messages over the socket from multiple threads.
  • Fix automatic retry seeding to be random across devices.
  • Fix an issue when parsing unquoted numbers as strings in our bundled TinyJson dependency.

v3.4.0

28 Apr 10:50
Compare
Choose a tag to compare

Notable changes

Added

  • Allow max message size limit with socket messages to be overridden in the adapter.
  • Relayed multiplayer matches can now be created with a custom name (i.e. room name).

Fixed

  • Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.

v3.3.0

24 Jan 14:54
Compare
Choose a tag to compare

Notable changes

Added

  • Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.
  • Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.

Changed

  • Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).
  • Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).
  • Socket messages which exceed the internal buffer size now generate an "InternalBufferOverflowException" type.
  • A socket connect made on an already connected socket will no longer raise an exception.
  • Propagate up the "WebSocketException" type thrown on socket messages sent over a disconnected socket.
  • Update bundled "Ninja.WebSockets" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.

Fixed

  • Expose base exception if retry handler fails.