feat(server): implement LiteNetLib server networking logic
feat(client) fix NetworkClint send data.
This commit is contained in:
parent
ab729d1a2f
commit
32b4335d48
24 changed files with 169 additions and 13 deletions
|
|
@ -38,6 +38,11 @@ namespace _Hub.Scripts.Network
|
|||
Init();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
_netManager.PollEvents();
|
||||
}
|
||||
|
||||
private void Init()
|
||||
{
|
||||
_netManager = new NetManager(this)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
Binary file not shown.
|
|
@ -7,9 +7,20 @@
|
|||
"targets": {
|
||||
".NETCoreApp,Version=v9.0": {
|
||||
"Playvoi.Server/1.0.0": {
|
||||
"dependencies": {
|
||||
"LiteNetLib": "1.3.5"
|
||||
},
|
||||
"runtime": {
|
||||
"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",
|
||||
"serviceable": false,
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -49,6 +49,12 @@
|
|||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"LiteNetLib": {
|
||||
"target": "Package",
|
||||
"version": "[1.3.5, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using System.Reflection;
|
|||
[assembly: System.Reflection.AssemblyCompanyAttribute("Playvoi.Server")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||
[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.AssemblyTitleAttribute("Playvoi.Server")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ac3dd1099f6eda8add1823c62e3c8f4e63611a380378da5ac3d5bfeccd59b449
|
||||
98eff605502050ea012292e318729166e39cf9aa8ce58a266dabc44ef5c20548
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
a042ed99ee8c62f56d1c8b68b4eacb26e3316b830706eec35546f743cc1aacc3
|
||||
93e5d40e9fa299613996065e17f6cd85fbad4a2f79a5140baa0b18e860f4e6fa
|
||||
|
|
|
|||
|
|
@ -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.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\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
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,11 +1,51 @@
|
|||
{
|
||||
"version": 3,
|
||||
"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": {
|
||||
"net9.0": []
|
||||
"net9.0": [
|
||||
"LiteNetLib >= 1.3.5"
|
||||
]
|
||||
},
|
||||
"packageFolders": {
|
||||
"C:\\Users\\MAMAK\\.nuget\\packages\\": {},
|
||||
|
|
@ -56,6 +96,12 @@
|
|||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"LiteNetLib": {
|
||||
"target": "Package",
|
||||
"version": "[1.3.5, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "M0ryP2MvocM=",
|
||||
"dgSpecHash": "Ssqo8UqQtd0=",
|
||||
"success": true,
|
||||
"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": []
|
||||
}
|
||||
|
|
@ -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"}}
|
||||
|
|
@ -1 +1 @@
|
|||
17686012387702640
|
||||
17686021595132556
|
||||
|
|
@ -1 +1 @@
|
|||
17686012387702640
|
||||
17686021599175449
|
||||
Loading…
Reference in a new issue