feat(server): implement LiteNetLib server networking logic

feat(client) fix  NetworkClint send data.
This commit is contained in:
EmirHanMamak 2026-01-17 01:59:13 +03:00
parent ab729d1a2f
commit 32b4335d48
24 changed files with 169 additions and 13 deletions

View file

@ -38,6 +38,11 @@ namespace _Hub.Scripts.Network
Init(); Init();
} }
private void Update()
{
_netManager.PollEvents();
}
private void Init() private void Init()
{ {
_netManager = new NetManager(this) _netManager = new NetManager(this)

View file

@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using LiteNetLib;
namespace Playvoi.Server;
public class NetworkServer : INetEventListener
{
private NetManager _netManager;
private Dictionary<int, NetPeer> _connections;
public void Start()
{
_connections = new Dictionary<int, NetPeer>();
_netManager = new NetManager(this)
{
DisconnectTimeout = 10000
};
_netManager.Start(9050);
Console.WriteLine("Server listening on port 9050");
}
public void PoolEvents()
{
_netManager.PollEvents();
}
public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, byte channelNumber, DeliveryMethod deliveryMethod)
{
var data = Encoding.UTF8.GetString(reader.RawData);
Console.WriteLine($"Data received from client : {data}");
var replay = "Ehm Replay";
var bytes = Encoding.UTF8.GetBytes(replay);
peer.Send(bytes, DeliveryMethod.ReliableOrdered);
}
public void OnPeerConnected(NetPeer peer)
{
Console.WriteLine($"Client connected:{peer.Id}:{peer.Address}:{peer.Port}");
_connections.Add(peer.Id, peer);
}
public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo)
{
Console.WriteLine($"Client disconnected:{peer.Id}:{peer.Address}:{peer.Port}");
_connections.Remove(peer.Id);
}
public void OnConnectionRequest(ConnectionRequest request)
{
Console.WriteLine($"Incoming connection from {request.RemoteEndPoint}");
request.Accept();
}
public void OnNetworkError(IPEndPoint endPoint, SocketError socketError)
{
}
public void OnNetworkReceiveUnconnected(IPEndPoint remoteEndPoint, NetPacketReader reader, UnconnectedMessageType messageType)
{
}
public void OnNetworkLatencyUpdate(NetPeer peer, int latency)
{
}
}

View file

@ -1,3 +1,10 @@
// See https://aka.ms/new-console-template for more information using System.Threading;
using Playvoi.Server;
Console.WriteLine("Hello, World!"); var server = new NetworkServer();
server.Start();
while (true)
{
server.PoolEvents();
Thread.Sleep(15);
}

View file

@ -7,9 +7,20 @@
"targets": { "targets": {
".NETCoreApp,Version=v9.0": { ".NETCoreApp,Version=v9.0": {
"Playvoi.Server/1.0.0": { "Playvoi.Server/1.0.0": {
"dependencies": {
"LiteNetLib": "1.3.5"
},
"runtime": { "runtime": {
"Playvoi.Server.dll": {} "Playvoi.Server.dll": {}
} }
},
"LiteNetLib/1.3.5": {
"runtime": {
"lib/net8.0/LiteNetLib.dll": {
"assemblyVersion": "1.3.5.0",
"fileVersion": "1.3.5.0"
}
}
} }
} }
}, },
@ -18,6 +29,13 @@
"type": "project", "type": "project",
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
},
"LiteNetLib/1.3.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WKJEIdQfLDWFEzdKpLZzwB9Umci/2TWxX6ZZnZHhbJ4Z0c1eccS2pZpgUFcHtEnrUY+H1vOFqxzOrgoQpG6unQ==",
"path": "litenetlib/1.3.5",
"hashPath": "litenetlib.1.3.5.nupkg.sha512"
} }
} }
} }

View file

@ -49,6 +49,12 @@
"frameworks": { "frameworks": {
"net9.0": { "net9.0": {
"targetAlias": "net9.0", "targetAlias": "net9.0",
"dependencies": {
"LiteNetLib": {
"target": "Package",
"version": "[1.3.5, )"
}
},
"imports": [ "imports": [
"net461", "net461",
"net462", "net462",

View file

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyCompanyAttribute("Playvoi.Server")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e64fe2b019e506ee491203653ffa81266029fbfd")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ab729d1a2f9f4195576893a393b5d11c62f69313")]
[assembly: System.Reflection.AssemblyProductAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyProductAttribute("Playvoi.Server")]
[assembly: System.Reflection.AssemblyTitleAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyTitleAttribute("Playvoi.Server")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View file

@ -1 +1 @@
ac3dd1099f6eda8add1823c62e3c8f4e63611a380378da5ac3d5bfeccd59b449 98eff605502050ea012292e318729166e39cf9aa8ce58a266dabc44ef5c20548

View file

@ -1 +1 @@
a042ed99ee8c62f56d1c8b68b4eacb26e3316b830706eec35546f743cc1aacc3 93e5d40e9fa299613996065e17f6cd85fbad4a2f79a5140baa0b18e860f4e6fa

View file

@ -12,3 +12,6 @@ F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi.Server.pdb F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi.Server.pdb
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi.Server.genruntimeconfig.cache F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi.Server.genruntimeconfig.cache
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\ref\Playvoi.Server.dll F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\ref\Playvoi.Server.dll
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\bin\Release\net9.0\LiteNetLib.dll
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi.Server.csproj.AssemblyReference.cache
F:\_Work\_PersonelWorks\Playvoi\Playvoi.Server\Playvoi.Server\Playvoi.Server\obj\Release\net9.0\Playvoi..EE84DD13.Up2Date

View file

@ -1,11 +1,51 @@
{ {
"version": 3, "version": 3,
"targets": { "targets": {
"net9.0": {} "net9.0": {
"LiteNetLib/1.3.5": {
"type": "package",
"compile": {
"lib/net8.0/LiteNetLib.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/LiteNetLib.dll": {
"related": ".xml"
}
}
}
}
},
"libraries": {
"LiteNetLib/1.3.5": {
"sha512": "WKJEIdQfLDWFEzdKpLZzwB9Umci/2TWxX6ZZnZHhbJ4Z0c1eccS2pZpgUFcHtEnrUY+H1vOFqxzOrgoQpG6unQ==",
"type": "package",
"path": "litenetlib/1.3.5",
"files": [
".nupkg.metadata",
".signature.p7s",
"LNL.png",
"README.md",
"lib/net6.0/LiteNetLib.dll",
"lib/net6.0/LiteNetLib.xml",
"lib/net7.0/LiteNetLib.dll",
"lib/net7.0/LiteNetLib.xml",
"lib/net8.0/LiteNetLib.dll",
"lib/net8.0/LiteNetLib.xml",
"lib/netstandard2.0/LiteNetLib.dll",
"lib/netstandard2.0/LiteNetLib.xml",
"lib/netstandard2.1/LiteNetLib.dll",
"lib/netstandard2.1/LiteNetLib.xml",
"litenetlib.1.3.5.nupkg.sha512",
"litenetlib.nuspec"
]
}
}, },
"libraries": {},
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
"net9.0": [] "net9.0": [
"LiteNetLib >= 1.3.5"
]
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\MAMAK\\.nuget\\packages\\": {}, "C:\\Users\\MAMAK\\.nuget\\packages\\": {},
@ -56,6 +96,12 @@
"frameworks": { "frameworks": {
"net9.0": { "net9.0": {
"targetAlias": "net9.0", "targetAlias": "net9.0",
"dependencies": {
"LiteNetLib": {
"target": "Package",
"version": "[1.3.5, )"
}
},
"imports": [ "imports": [
"net461", "net461",
"net462", "net462",

View file

@ -1,8 +1,10 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "M0ryP2MvocM=", "dgSpecHash": "Ssqo8UqQtd0=",
"success": true, "success": true,
"projectFilePath": "F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj", "projectFilePath": "F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj",
"expectedPackageFiles": [], "expectedPackageFiles": [
"C:\\Users\\MAMAK\\.nuget\\packages\\litenetlib\\1.3.5\\litenetlib.1.3.5.nupkg.sha512"
],
"logs": [] "logs": []
} }

View file

@ -1 +1 @@
"restore":{"projectUniqueName":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj","projectName":"Playvoi.Server","projectPath":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj","outputPath":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net9.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj","projectName":"Playvoi.Server","projectPath":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server.csproj","outputPath":"F:\\_Work\\_PersonelWorks\\Playvoi\\Playvoi.Server\\Playvoi.Server\\Playvoi.Server\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net9.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"LiteNetLib":{"target":"Package","version":"[1.3.5, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.100/PortableRuntimeIdentifierGraph.json"}}

View file

@ -1 +1 @@
17686012387702640 17686021595132556

View file

@ -1 +1 @@
17686012387702640 17686021599175449