[PR #1] [MERGED] Upgrades to the SSE Event listener. #2

Closed
opened 2026-10-15 12:46:32 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/pull/1
Author: @Skerga
Created: 3/20/2026
Status: ✅ Merged
Merged: 3/20/2026
Merged by: @Skerga

Base: main ← Head: dev-features-and-fixes


📝 Commits (10+)

  • b9accbb Cleaning up unused codepaths
  • d52733f upgraded versions of nuget packages
  • 1b8af26 changed ClientSideRateLimitedHandler to use normal ctor instead of primary constructor
  • 50d54bd Updated Tests to newest TestFramework.
  • 542968a fixed wrong naming in file
  • 533be51 Added a Test for the SourceGenerator, mainly used to be able to debug the Source Generator via the test.
  • 7199f05 simplified constructor
  • 5287b94 Added events for DockerApi.
  • b691320 Updated the Unit test and added a Unit test used to debug the source generator.
  • ad2e364 Implemented a system using EventHandler classes to allow for typed data to be emited for SSE events.

📊 Changes

37 files changed (+971 additions, -320 deletions)

View changed files

📝 GamesOnWhales.Wolf.Net.Bindings.Tests/GamesOnWhales.Wolf.Net.Bindings.Tests.csproj (+16 -10)
📝 GamesOnWhales.Wolf.Net.Bindings.Tests/IntegrationTest.cs (+5 -6)
➕ GamesOnWhales.Wolf.Net.Bindings.Tests/SourceGeneratorTests.cs (+86 -0)
➕ GamesOnWhales.Wolf.Net.Bindings.Tests/Utils/TestAdditionalFile.cs (+33 -0)
📝 GamesOnWhales.Wolf.Net.Bindings.Tests/WolfContainer.cs (+12 -9)
📝 GamesOnWhales.Wolf.Net.Bindings/Components/ClientSideRateLimitedHandler.cs (+11 -6)
📝 GamesOnWhales.Wolf.Net.Bindings/Extensions/Extensions.cs (+15 -1)
📝 GamesOnWhales.Wolf.Net.Bindings/GamesOnWhales.Wolf.Net.Bindings.csproj (+7 -3)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/AudioSessionEventHandler.cs (+51 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/CreateLobbyEventHandler.cs (+57 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/DockerPullImageEndEventHandler.cs (+17 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/DockerPullImageStartEventHandler.cs (+15 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/EmitSignal.cs (+16 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/ISseEventHandler.cs (+15 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/IdrRequestEventHandler.cs (+15 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/JoinLobbyEventHandler.cs (+17 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/LeaveLobbyEventHandler.cs (+17 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PairSignalEventHandler.cs (+17 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PauseStreamEventHandler.cs (+15 -0)
➕ GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PlugDeviceEventHandler.cs (+47 -0)

...and 17 more files

📄 Description

Changes:

  • SSE events are now Typed, since the conversion of the JSON might take time that's not required for most use cases if only a hand full of events are listened to no typed events are Invoked by default to enable an Event type register a corresponding EventHandler in DI or pass an Enumerable of ISseEventHandler to the WolfApi constructor. General text base events are available for all Not via EventHandler handled events by overwriting the OnEvent method or by subscribing to the SseEvent event.
  • Testing Framework updated to newer version.
  • WolfApi constructor unified with default values instead of chaining overloads. should behave similar but less clutter.
    Fixes:
  • The SSE event listener was hanging for up to 30seconds on shutdown, this is now fixed.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/pull/1 **Author:** [@Skerga](https://github.com/Skerga) **Created:** 3/20/2026 **Status:** ✅ Merged **Merged:** 3/20/2026 **Merged by:** [@Skerga](https://github.com/Skerga) **Base:** `main` ← **Head:** `dev-features-and-fixes` --- ### 📝 Commits (10+) - [`b9accbb`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/b9accbb3b03c932b580d5ccc555f7abfe4ab6bd7) Cleaning up unused codepaths - [`d52733f`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/d52733fa355e54f1ee165ec168c32f75d588c525) upgraded versions of nuget packages - [`1b8af26`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/1b8af261d4c39378ed45ee6f0de49849c1050736) changed ClientSideRateLimitedHandler to use normal ctor instead of primary constructor - [`50d54bd`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/50d54bd03e6e072bd893dd83cc96468ff5f536f1) Updated Tests to newest TestFramework. - [`542968a`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/542968aff4024ded2cf4ef5766126fa69ae37bd6) fixed wrong naming in file - [`533be51`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/533be5161697052518c1aa972c42b6fb7147e27f) Added a Test for the SourceGenerator, mainly used to be able to debug the Source Generator via the test. - [`7199f05`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/7199f053e392d6397cbf3823ce56569854a54417) simplified constructor - [`5287b94`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/5287b94580b541c4b8581b0774e386ad281b7f0f) Added events for DockerApi. - [`b691320`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/b691320938e8617af80464a557e6983153eb10d1) Updated the Unit test and added a Unit test used to debug the source generator. - [`ad2e364`](https://github.com/games-on-whales/GamesOnWhales.Wolf.Net.Bindings/commit/ad2e3645fb961dc149fa2936e2da055edb906beb) Implemented a system using EventHandler classes to allow for typed data to be emited for SSE events. ### 📊 Changes **37 files changed** (+971 additions, -320 deletions) <details> <summary>View changed files</summary> 📝 `GamesOnWhales.Wolf.Net.Bindings.Tests/GamesOnWhales.Wolf.Net.Bindings.Tests.csproj` (+16 -10) 📝 `GamesOnWhales.Wolf.Net.Bindings.Tests/IntegrationTest.cs` (+5 -6) ➕ `GamesOnWhales.Wolf.Net.Bindings.Tests/SourceGeneratorTests.cs` (+86 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings.Tests/Utils/TestAdditionalFile.cs` (+33 -0) 📝 `GamesOnWhales.Wolf.Net.Bindings.Tests/WolfContainer.cs` (+12 -9) 📝 `GamesOnWhales.Wolf.Net.Bindings/Components/ClientSideRateLimitedHandler.cs` (+11 -6) 📝 `GamesOnWhales.Wolf.Net.Bindings/Extensions/Extensions.cs` (+15 -1) 📝 `GamesOnWhales.Wolf.Net.Bindings/GamesOnWhales.Wolf.Net.Bindings.csproj` (+7 -3) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/AudioSessionEventHandler.cs` (+51 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/CreateLobbyEventHandler.cs` (+57 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/DockerPullImageEndEventHandler.cs` (+17 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/DockerPullImageStartEventHandler.cs` (+15 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/EmitSignal.cs` (+16 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/ISseEventHandler.cs` (+15 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/IdrRequestEventHandler.cs` (+15 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/JoinLobbyEventHandler.cs` (+17 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/LeaveLobbyEventHandler.cs` (+17 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PairSignalEventHandler.cs` (+17 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PauseStreamEventHandler.cs` (+15 -0) ➕ `GamesOnWhales.Wolf.Net.Bindings/SseEventHandler/PlugDeviceEventHandler.cs` (+47 -0) _...and 17 more files_ </details> ### 📄 Description Changes: * SSE events are now Typed, since the conversion of the JSON might take time that's not required for most use cases if only a hand full of events are listened to no typed events are Invoked by default to enable an Event type register a corresponding EventHandler in DI or pass an Enumerable of `ISseEventHandler` to the WolfApi constructor. General text base events are available for all **Not** via EventHandler handled events by overwriting the `OnEvent` method or by subscribing to the `SseEvent` event. * Testing Framework updated to newer version. * WolfApi constructor unified with default values instead of chaining overloads. should behave similar but less clutter. Fixes: * The SSE event listener was hanging for up to 30seconds on shutdown, this is now fixed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:46:32 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/GamesOnWhales.Wolf.Net.Bindings#2
No description provided.