Files
SVSimServer/SVSim.BattleNode/Wire/EngineIoHandshake.cs

23 lines
836 B
C#

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);
}