feat(battle-node): EngineIoFrame parse/encode for EIO3 packets
This commit is contained in:
22
SVSim.BattleNode/Wire/EngineIoHandshake.cs
Normal file
22
SVSim.BattleNode/Wire/EngineIoHandshake.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SVSim.BattleNode.Wire;
|
||||
|
||||
/// <summary>
|
||||
/// Payload of an EIO3 Open packet. Sent by the server to the client immediately after the WS upgrade.
|
||||
/// </summary>
|
||||
public sealed record EngineIoHandshake(
|
||||
[property: JsonPropertyName("sid")] string Sid,
|
||||
[property: JsonPropertyName("upgrades")] string[] Upgrades,
|
||||
[property: JsonPropertyName("pingInterval")] int PingInterval,
|
||||
[property: JsonPropertyName("pingTimeout")] int PingTimeout)
|
||||
{
|
||||
// Wire-key casing here is bare camelCase — NOT EmulatedEntrypoint's snake_case policy.
|
||||
private static readonly JsonSerializerOptions Options = new()
|
||||
{
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
};
|
||||
|
||||
public string ToJson() => JsonSerializer.Serialize(this, Options);
|
||||
}
|
||||
Reference in New Issue
Block a user