Network Library Documentation
Loading...
Searching...
No Matches
ServerReceiveHandler Class Reference

Contains all of the managing methods for received packets on server. More...

Static Public Member Functions

static void WelcomeReceived (int clientId, Packet receivedPacket)
 Handles the initial welcome message from a client and completes handshake.
static void LatencyRequestReceived (int clientId, Packet receivedPacket)
 Handles client latency measurement request.
static void MessageToUserRequestReceived (int clientId, Packet receivedPacket)
 Handles request to send a private message to another user.
static void MessageToAllRequestReceived (int clientId, Packet receivedPacket)
 Handles request to broadcast a message to all clients.
static void DisconnectRequestReceived (int clientId, Packet receivedPacket)
 Handles client disconnection request.
static void TransformChangeReceived (int clientId, Packet receivedPacket)
 Handles transform update from the client.
static void AnimationChangeReceived (int clientId, Packet receivedPacket)
 Handles animation change event sent from the client.
static void BandwidthRequestReceived (int clientId, Packet receivedPacket)
 Handles request to measure network bandwidth.
static void ThroughputRequestReceived (int clientId, Packet receivedPacket)
 Handles request to measure network throughput.

Detailed Description

Contains all of the managing methods for received packets on server.

Definition at line 10 of file ServerReceiveHandler.cs.

Member Function Documentation

◆ AnimationChangeReceived()

void ServerReceiveHandler.AnimationChangeReceived ( int clientId,
Packet receivedPacket )
static

Handles animation change event sent from the client.

Definition at line 134 of file ServerReceiveHandler.cs.

135 {
136 int readClientId = receivedPacket.ReadInt();
137 if (ServerLogic.GetSettings().useAuthentificationTokens)
138 {
139 string token = receivedPacket.ReadString();
140 if (token != ServerLogic.clientsList[clientId].GetToken())
141 {
142 Debug.LogError("Auth token is NOT valid");
143 }
144 }
145 int type = receivedPacket.ReadInt();
146 string name = receivedPacket.ReadString();
147 float value = receivedPacket.ReadFloat();
148 if (clientId != readClientId)
149 {
150 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
151 return;
152 }
153 ServerLogic.clientsList[clientId].UpdateAnimation(type, name, value);
154 }
float ReadFloat(bool changeReadPosition=true)
Read float data.
Definition Packet.cs:107
int ReadInt(bool changeReadPosition=true)
Read int data.
Definition Packet.cs:80
string ReadString(bool ChangeReadPosition=true)
Read string data.
Definition Packet.cs:52

◆ BandwidthRequestReceived()

void ServerReceiveHandler.BandwidthRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles request to measure network bandwidth.

Definition at line 159 of file ServerReceiveHandler.cs.

160 {
161 int readClientId = receivedPacket.ReadInt();
162 if (clientId != readClientId)
163 {
164 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
165 return;
166 }
167 if (ServerLogic.GetSettings().useAuthentificationTokens)
168 {
169 string token = receivedPacket.ReadString();
170 if (token != ServerLogic.clientsList[clientId].GetToken())
171 {
172 Debug.LogError("Auth token is NOT valid");
173 }
174 }
175 int dataLength = receivedPacket.ReadInt();
176 byte[] data = receivedPacket.ReadBytes(dataLength);
177 ServerSendHandler.SendBandwidthReply(clientId);
178 }
byte[] ReadBytes(int arrayLength, bool changeReadPosition=true)
read byte array data
Definition Packet.cs:188

◆ DisconnectRequestReceived()

void ServerReceiveHandler.DisconnectRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles client disconnection request.

Definition at line 88 of file ServerReceiveHandler.cs.

89 {
90 int readClientId = receivedPacket.ReadInt();
91 if (clientId != readClientId)
92 {
93 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
94 return;
95 }
96 if (ServerLogic.GetSettings().useAuthentificationTokens)
97 {
98 string token = receivedPacket.ReadString();
99 if (token != ServerLogic.clientsList[clientId].GetToken())
100 {
101 Debug.LogError("Auth token is NOT valid");
102 }
103 }
104 ServerLogic.clientsList[clientId].DisconnectRequest();
105 }

◆ LatencyRequestReceived()

void ServerReceiveHandler.LatencyRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles client latency measurement request.

Definition at line 32 of file ServerReceiveHandler.cs.

33 {
34 int readClientId = receivedPacket.ReadInt();
35 int pcktId = receivedPacket.ReadInt();
36 if (clientId != readClientId)
37 {
38 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
39 return;
40 }
41 ServerLogic.clientsList[clientId].SendLatencyReply(pcktId);
42 }

◆ MessageToAllRequestReceived()

void ServerReceiveHandler.MessageToAllRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles request to broadcast a message to all clients.

Definition at line 65 of file ServerReceiveHandler.cs.

66 {
67 int readClientId = receivedPacket.ReadInt();
68 if (ServerLogic.GetSettings().useAuthentificationTokens)
69 {
70 string token = receivedPacket.ReadString();
71 if (token != ServerLogic.clientsList[clientId].GetToken())
72 {
73 Debug.LogError("Auth token is NOT valid");
74 }
75 }
76 string message = receivedPacket.ReadString();
77 if (clientId != readClientId)
78 {
79 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
80 return;
81 }
82 ServerLogic.clientsList[readClientId].ResendToAll(message);
83 }

◆ MessageToUserRequestReceived()

void ServerReceiveHandler.MessageToUserRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles request to send a private message to another user.

Definition at line 47 of file ServerReceiveHandler.cs.

48 {
49 int readClientId = receivedPacket.ReadInt();
50 if (ServerLogic.GetSettings().useAuthentificationTokens)
51 {
52 string token = receivedPacket.ReadString();
53 if (token != ServerLogic.clientsList[clientId].GetToken())
54 {
55 Debug.LogError("Auth token is NOT valid");
56 }
57 }
58 string message = receivedPacket.ReadString();
59 ServerLogic.clientsList[readClientId].ResendMessage(message);
60 }

◆ ThroughputRequestReceived()

void ServerReceiveHandler.ThroughputRequestReceived ( int clientId,
Packet receivedPacket )
static

Handles request to measure network throughput.

Definition at line 183 of file ServerReceiveHandler.cs.

184 {
185 int readClientId = receivedPacket.ReadInt();
186 if (clientId != readClientId)
187 {
188 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
189 return;
190 }
191 int pcktId = receivedPacket.ReadInt();
192 int dataLength = receivedPacket.ReadInt();
193 byte[] data = receivedPacket.ReadBytes(dataLength);
194 int sizeData = data.Length;
195 ServerSendHandler.SendThroughputReply(clientId, pcktId, sizeData);
196 }

◆ TransformChangeReceived()

void ServerReceiveHandler.TransformChangeReceived ( int clientId,
Packet receivedPacket )
static

Handles transform update from the client.

Definition at line 110 of file ServerReceiveHandler.cs.

111 {
112 int readClientId = receivedPacket.ReadInt();
113 if (ServerLogic.GetSettings().useAuthentificationTokens)
114 {
115 string token = receivedPacket.ReadString();
116 if (token != ServerLogic.clientsList[clientId].GetToken())
117 {
118 Debug.LogError("Auth token is NOT valid");
119 }
120 }
121 Vector3 pos = receivedPacket.ReadVector3();
122 Quaternion rot = receivedPacket.ReadQuaternion();
123 if (clientId != readClientId)
124 {
125 Console.WriteLine($"Client (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
126 return;
127 }
128 ServerLogic.clientsList[clientId].UpdateTransform(pos, rot);
129 }
Quaternion ReadQuaternion(bool changeReadPos=true)
Read Quaternion data.
Definition Packet.cs:263
Vector3 ReadVector3(bool changeReadPos=true)
Read Vector3 data.
Definition Packet.cs:243

◆ WelcomeReceived()

void ServerReceiveHandler.WelcomeReceived ( int clientId,
Packet receivedPacket )
static

Handles the initial welcome message from a client and completes handshake.

Definition at line 15 of file ServerReceiveHandler.cs.

16 {
17 int readClientId = receivedPacket.ReadInt();
18 string clientUsername = receivedPacket.ReadString();
19 ServerLogic.clientsList[clientId].clientUsername = clientUsername;
20 Console.WriteLine($"{ServerLogic.clientsList[clientId].tcp.Socket.Client.RemoteEndPoint} [{clientUsername}] has connected successfully and is now Client{clientId}\n");
21 if (clientId != readClientId)
22 {
23 Console.WriteLine($"Client \"{clientUsername}\" (ID: {clientId}) has assumed the wrong client ID ({readClientId})!");
24 return;
25 }
26 ServerLogic.clientsList[clientId].SendUserToAction(clientUsername);
27 }