feat: IConnection interface added for connection information

This commit is contained in:
2025-06-17 23:21:46 +03:00
parent 7cc3bb4d83
commit d89af5ccad
11 changed files with 88 additions and 42 deletions

View File

@@ -0,0 +1,8 @@
namespace Syntriax.Engine.Network;
public interface IConnection
{
string Id { get; }
float Ping { get; }
float RoundTrip { get; }
}

View File

@@ -1,13 +1,20 @@
using System.Collections.Generic;
using Syntriax.Engine.Core;
namespace Syntriax.Engine.Network;
public interface INetworkCommunicator
{
Event<INetworkCommunicator, IConnection> OnConnectionEstablished { get; }
Event<INetworkCommunicator, IConnection> OnConnectionAbolished { get; }
IReadOnlyDictionary<string, IConnection> Connections { get; }
INetworkCommunicator Stop();
INetworkCommunicator SubscribeToPackets<T>(Event<string, T>.EventHandler callback);
INetworkCommunicator UnsubscribeFromPackets<T>(Event<string, T>.EventHandler callback);
INetworkCommunicator SubscribeToPackets<T>(Event<IConnection, T>.EventHandler callback);
INetworkCommunicator UnsubscribeFromPackets<T>(Event<IConnection, T>.EventHandler callback);
}
public interface INetworkCommunicatorClient : INetworkCommunicator

View File

@@ -2,5 +2,5 @@ namespace Syntriax.Engine.Network;
public interface IPacketListenerClient<T> : INetworkEntity
{
void OnClientPacketArrived(T packet);
void OnClientPacketArrived(IConnection sender, T packet);
}

View File

@@ -2,5 +2,5 @@ namespace Syntriax.Engine.Network;
public interface IPacketListenerServer<T> : INetworkEntity
{
void OnServerPacketArrived(string sender, T packet);
void OnServerPacketArrived(IConnection sender, T packet);
}