GameHub ( Server )
unknown
plain_text
5 years ago
2.1 kB
9
Indexable
public class GameHub
{
public static GameHub Instance
{
get
{
if (_Instance == default)
{
_Instance = new GameHub();
}
return _Instance;
}
}
private static GameHub _Instance;
//Net stuff
private NetManager Manager;
private EventBasedNetListener Listener;
private NetPacketProcessor Processor;
private GameHub()
{
Console.WriteLine("Starting Server...");
//Initialize stuff
Listener = new EventBasedNetListener();
Manager = new NetManager(Listener);
Processor = new NetPacketProcessor();
Listener.ConnectionRequestEvent += (Req) =>
{
Req.AcceptIfKey("Felix");
};
Listener.PeerConnectedEvent += (Client) =>
{
Console.WriteLine($"Client connected: {Client.Ping} ms");
};
Listener.NetworkReceiveEvent += (Client, Reader, Delivery) =>
{
Processor.ReadAllPackets(Reader, Client);
};
Processor.RegisterNestedType(Vector2Util.Serialize, Vector2Util.Deserialize);
Processor.SubscribeReusable<UserIDReq, NetPeer>((x, y) => OnUserIDReq(x, y));
Manager.Start(1258);
_ = Loop();
}
private async Task Loop()
{
Manager.PollEvents();
await Task.Delay(20);
_ = Loop();
}
private void OnUserIDReq(UserIDReq Req, NetPeer Peer)
{
Req.UserID = 1234123412341234;
Callback(Req, Peer);
}
//Callback
public void Callback(object CB, NetPeer Peer, DeliveryMethod DM = DeliveryMethod.ReliableOrdered)
{
Processor.Send(Peer, CB, DM);
}
}
Editor is loading...