Skip to content

Commit 12b6de2

Browse files
committed
Changed messageType from string to byte
1 parent e11135d commit 12b6de2

File tree

9 files changed

+74
-72
lines changed

9 files changed

+74
-72
lines changed

MLAPI/Data/MLAPIConstants.cs

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,41 @@ public static class MLAPIConstants
88
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
99
public const string MLAPI_PROTOCOL_VERSION = "2.0.0";
1010

11-
public const ushort MLAPI_CONNECTION_REQUEST = 0;
12-
public const ushort MLAPI_CONNECTION_APPROVED = 1;
13-
public const ushort MLAPI_ADD_OBJECT = 2;
14-
public const ushort MLAPI_CLIENT_DISCONNECT = 3;
15-
public const ushort MLAPI_DESTROY_OBJECT = 4;
16-
public const ushort MLAPI_SWITCH_SCENE = 5;
17-
public const ushort MLAPI_SPAWN_POOL_OBJECT = 6;
18-
public const ushort MLAPI_DESTROY_POOL_OBJECT = 7;
19-
public const ushort MLAPI_CHANGE_OWNER = 8;
20-
public const ushort MLAPI_ADD_OBJECTS = 9;
21-
public const ushort MLAPI_TIME_SYNC = 10;
22-
public const ushort MLAPI_NETWORKED_VAR_DELTA = 11;
23-
public const ushort MLAPI_NETWORKED_VAR_UPDATE = 12;
24-
public const ushort MLAPI_SERVER_RPC = 13;
25-
public const ushort MLAPI_CLIENT_RPC = 14;
26-
public const ushort MLAPI_CUSTOM_MESSAGE = 15;
11+
public const byte MLAPI_CONNECTION_REQUEST = 0;
12+
public const byte MLAPI_CONNECTION_APPROVED = 1;
13+
public const byte MLAPI_ADD_OBJECT = 2;
14+
public const byte MLAPI_CLIENT_DISCONNECT = 3;
15+
public const byte MLAPI_DESTROY_OBJECT = 4;
16+
public const byte MLAPI_SWITCH_SCENE = 5;
17+
public const byte MLAPI_SPAWN_POOL_OBJECT = 6;
18+
public const byte MLAPI_DESTROY_POOL_OBJECT = 7;
19+
public const byte MLAPI_CHANGE_OWNER = 8;
20+
public const byte MLAPI_ADD_OBJECTS = 9;
21+
public const byte MLAPI_TIME_SYNC = 10;
22+
public const byte MLAPI_NETWORKED_VAR_DELTA = 11;
23+
public const byte MLAPI_NETWORKED_VAR_UPDATE = 12;
24+
public const byte MLAPI_SERVER_RPC = 13;
25+
public const byte MLAPI_CLIENT_RPC = 14;
26+
public const byte MLAPI_CUSTOM_MESSAGE = 15;
27+
28+
public static readonly string[] MESSAGE_NAMES = {
29+
"MLAPI_CONNECTION_REQUEST",
30+
"MLAPI_CONNECTION_APPROVED",
31+
"MLAPI_ADD_OBJECT",
32+
"MLAPI_CLIENT_DISCONNECT",
33+
"MLAPI_DESTROY_OBJECT",
34+
"MLAPI_SWITCH_SCENE",
35+
"MLAPI_SPAWN_POOL_OBJECT",
36+
"MLAPI_DESTROY_POOL_OBJECT",
37+
"MLAPI_CHANGE_OWNER",
38+
"MLAPI_ADD_OBJECTS",
39+
"MLAPI_TIME_SYNC",
40+
"MLAPI_NETWORKED_VAR_DELTA",
41+
"MLAPI_NETWORKED_VAR_UPDATE",
42+
"MLAPI_SERVER_RPC",
43+
"MLAPI_CLIENT_RPC",
44+
"MLAPI_CUSTOM_MESSAGE"
45+
};
2746
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
2847
}
2948
}

MLAPI/Data/NetworkProfiler/NetworkProfiler.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using MLAPI.Data;
23
using MLAPI.Internal;
34
using MLAPI.Profiler;
45
using UnityEngine;
@@ -112,14 +113,14 @@ internal static void EndTick()
112113
CurrentTick = null;
113114
}
114115

115-
internal static void StartEvent(TickType eventType, uint bytes, int channelId, ushort messageId)
116+
internal static void StartEvent(TickType eventType, uint bytes, int channelId, byte messageType)
116117
{
117118
if (!isRunning)
118119
return;
119120
if (CurrentTick == null)
120121
return;
121122
string channelName = MessageManager.reverseChannels.ContainsKey(channelId) ? MessageManager.reverseChannels[channelId] : "INVALID_CHANNEL";
122-
string messageName = MessageManager.reverseMessageTypes.ContainsKey(messageId) ? MessageManager.reverseMessageTypes[messageId] : "INVALID_MESSAGE_TYPE";
123+
string messageName = MLAPIConstants.MESSAGE_NAMES.Length < messageType ? MLAPIConstants.MESSAGE_NAMES[messageType] : "INVALID_MESSAGE_TYPE";
123124

124125
CurrentTick.StartEvent(eventType, bytes, channelName, messageName);
125126
}

MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,9 @@ internal void NetworkedVarUpdate()
294294
}
295295

296296
if (isServer)
297-
InternalMessageHandler.Send(clientId, "MLAPI_NETWORKED_VAR_DELTA", channelsForVarGroups[j], stream);
297+
InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_NETWORKED_VAR_DELTA, channelsForVarGroups[j], stream);
298298
else
299-
InternalMessageHandler.Send(NetworkingManager.singleton.NetworkConfig.NetworkTransport.ServerClientId, "MLAPI_NETWORKED_VAR_DELTA", channelsForVarGroups[j], stream);
299+
InternalMessageHandler.Send(NetworkingManager.singleton.NetworkConfig.NetworkTransport.ServerClientId, MLAPIConstants.MLAPI_NETWORKED_VAR_DELTA, channelsForVarGroups[j], stream);
300300
}
301301
}
302302
}
@@ -574,7 +574,7 @@ internal void SendServerRPCPerformance(ulong hash, Stream messageStream)
574574
InvokeServerRPCLocal(hash, NetworkingManager.singleton.LocalClientId, messageStream);
575575
}
576576

577-
InternalMessageHandler.Send(NetworkingManager.singleton.ServerClientId, "MLAPI_SERVER_RPC", "MLAPI_DEFAULT_MESSAGE", stream);
577+
InternalMessageHandler.Send(NetworkingManager.singleton.ServerClientId, MLAPIConstants.MLAPI_SERVER_RPC, "MLAPI_DEFAULT_MESSAGE", stream);
578578
}
579579
}
580580

@@ -607,7 +607,7 @@ internal void SendClientRPCPerformance(ulong hash, List<uint> clientIds, Stream
607607
}
608608
else
609609
{
610-
InternalMessageHandler.Send(NetworkingManager.singleton.ConnectedClientsList[i].ClientId, "MLAPI_CLIENT_RPC", "MLAPI_DEFAULT_MESSAGE", stream);
610+
InternalMessageHandler.Send(NetworkingManager.singleton.ConnectedClientsList[i].ClientId, MLAPIConstants.MLAPI_CLIENT_RPC, "MLAPI_DEFAULT_MESSAGE", stream);
611611
}
612612
}
613613
}
@@ -622,7 +622,7 @@ internal void SendClientRPCPerformance(ulong hash, List<uint> clientIds, Stream
622622
}
623623
else
624624
{
625-
InternalMessageHandler.Send(clientIds[i], "MLAPI_CLIENT_RPC", "MLAPI_DEFAULT_MESSAGE", stream);
625+
InternalMessageHandler.Send(clientIds[i], MLAPIConstants.MLAPI_CLIENT_RPC, "MLAPI_DEFAULT_MESSAGE", stream);
626626
}
627627
}
628628
}
@@ -654,7 +654,7 @@ internal void SendClientRPCPerformance(ulong hash, uint clientId, Stream message
654654
}
655655
else
656656
{
657-
InternalMessageHandler.Send(clientId, "MLAPI_CLIENT_RPC", "MLAPI_DEFAULT_MESSAGE", stream);
657+
InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CLIENT_RPC, "MLAPI_DEFAULT_MESSAGE", stream);
658658
}
659659
}
660660
}

MLAPI/MonoBehaviours/Core/NetworkingManager.cs

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,14 @@ public void SendCustomMessage(List<uint> clientIds, Stream stream, string channe
162162
{
163163
for (int i = 0; i < ConnectedClientsList.Count; i++)
164164
{
165-
InternalMessageHandler.Send(ConnectedClientsList[i].ClientId, "MLAPI_CUSTOM_MESSAGE", channel, stream);
165+
InternalMessageHandler.Send(ConnectedClientsList[i].ClientId, MLAPIConstants.MLAPI_CUSTOM_MESSAGE, channel, stream);
166166
}
167167
}
168168
else
169169
{
170170
for (int i = 0; i < clientIds.Count; i++)
171171
{
172-
InternalMessageHandler.Send(clientIds[i], "MLAPI_CUSTOM_MESSAGE", channel, stream);
172+
InternalMessageHandler.Send(clientIds[i], MLAPIConstants.MLAPI_CUSTOM_MESSAGE, channel, stream);
173173
}
174174
}
175175
}
@@ -182,7 +182,7 @@ public void SendCustomMessage(List<uint> clientIds, Stream stream, string channe
182182
/// <param name="channel">The channel tos end the data on</param>
183183
public void SendCustomMessage(uint clientId, Stream stream, string channel = "MLAPI_DEFAULT_MESSAGE")
184184
{
185-
InternalMessageHandler.Send(clientId, "MLAPI_CUSTOM_MESSAGE", channel, stream);
185+
InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CUSTOM_MESSAGE, channel, stream);
186186
}
187187

188188

@@ -281,9 +281,7 @@ private object Init(bool server)
281281
diffieHellmanPublicKeys.Clear();
282282
#endif
283283
MessageManager.channels.Clear();
284-
MessageManager.messageTypes.Clear();
285284
MessageManager.reverseChannels.Clear();
286-
MessageManager.reverseMessageTypes.Clear();
287285
SpawnManager.SpawnedObjects.Clear();
288286
SpawnManager.SpawnedObjectsList.Clear();
289287
SpawnManager.releasedNetworkObjectIds.Clear();
@@ -404,24 +402,6 @@ private object Init(bool server)
404402
MessageManager.reverseChannels.Add(channelId, NetworkConfig.Channels[i].Name);
405403
}
406404

407-
//Add internal messagetypes directly
408-
MessageManager.messageTypes.Add("MLAPI_CONNECTION_REQUEST", MLAPIConstants.MLAPI_CONNECTION_REQUEST);
409-
MessageManager.messageTypes.Add("MLAPI_CONNECTION_APPROVED", MLAPIConstants.MLAPI_CONNECTION_APPROVED);
410-
MessageManager.messageTypes.Add("MLAPI_ADD_OBJECT", MLAPIConstants.MLAPI_ADD_OBJECT);
411-
MessageManager.messageTypes.Add("MLAPI_CLIENT_DISCONNECT", MLAPIConstants.MLAPI_CLIENT_DISCONNECT);
412-
MessageManager.messageTypes.Add("MLAPI_DESTROY_OBJECT", MLAPIConstants.MLAPI_DESTROY_OBJECT);
413-
MessageManager.messageTypes.Add("MLAPI_SWITCH_SCENE", MLAPIConstants.MLAPI_SWITCH_SCENE);
414-
MessageManager.messageTypes.Add("MLAPI_SPAWN_POOL_OBJECT", MLAPIConstants.MLAPI_SPAWN_POOL_OBJECT);
415-
MessageManager.messageTypes.Add("MLAPI_DESTROY_POOL_OBJECT", MLAPIConstants.MLAPI_DESTROY_POOL_OBJECT);
416-
MessageManager.messageTypes.Add("MLAPI_CHANGE_OWNER", MLAPIConstants.MLAPI_CHANGE_OWNER);
417-
MessageManager.messageTypes.Add("MLAPI_ADD_OBJECTS", MLAPIConstants.MLAPI_ADD_OBJECTS);
418-
MessageManager.messageTypes.Add("MLAPI_TIME_SYNC", MLAPIConstants.MLAPI_TIME_SYNC);
419-
MessageManager.messageTypes.Add("MLAPI_NETWORKED_VAR_DELTA", MLAPIConstants.MLAPI_NETWORKED_VAR_DELTA);
420-
MessageManager.messageTypes.Add("MLAPI_NETWORKED_VAR_UPDATE", MLAPIConstants.MLAPI_NETWORKED_VAR_UPDATE);
421-
MessageManager.messageTypes.Add("MLAPI_SERVER_RPC", MLAPIConstants.MLAPI_SERVER_RPC);
422-
MessageManager.messageTypes.Add("MLAPI_CLIENT_RPC", MLAPIConstants.MLAPI_CLIENT_RPC);
423-
MessageManager.messageTypes.Add("MLAPI_CUSTOM_MESSAGE", MLAPIConstants.MLAPI_CUSTOM_MESSAGE);
424-
425405
return settings;
426406
}
427407

@@ -703,7 +683,7 @@ private void Update()
703683
if (NetworkConfig.ConnectionApproval)
704684
writer.WriteByteArray(NetworkConfig.ConnectionData);
705685

706-
InternalMessageHandler.Send(clientId, "MLAPI_CONNECTION_REQUEST", "MLAPI_INTERNAL", stream, true);
686+
InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CONNECTION_REQUEST, "MLAPI_INTERNAL", stream, true);
707687
}
708688
}
709689
NetworkProfiler.EndEvent();
@@ -789,7 +769,7 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId, int t
789769
stream.SetLength(totalSize);
790770
BitReader reader = new BitReader(stream);
791771

792-
ushort messageType = reader.ReadUInt16Packed();
772+
byte messageType = reader.ReadByteDirect();
793773

794774
uint headerByteSize = (uint)Arithmetic.VarIntSize(messageType);
795775
NetworkProfiler.StartEvent(TickType.Receive, (uint)(totalSize - headerByteSize), channelId, messageType);
@@ -911,7 +891,7 @@ internal void OnClientDisconnectFromServer(uint clientId)
911891
{
912892
BitWriter writer = new BitWriter(stream);
913893
writer.WriteUInt32Packed(clientId);
914-
InternalMessageHandler.Send("MLAPI_CLIENT_DISCONNECT", "MLAPI_INTERNAL", clientId, stream);
894+
InternalMessageHandler.Send(MLAPIConstants.MLAPI_CLIENT_DISCONNECT, "MLAPI_INTERNAL", clientId, stream);
915895
}
916896
}
917897
}
@@ -926,7 +906,7 @@ private void SyncTime()
926906
writer.WriteSinglePacked(NetworkTime);
927907
int timestamp = NetworkConfig.NetworkTransport.GetNetworkTimestamp();
928908
writer.WriteInt32Packed(timestamp);
929-
InternalMessageHandler.Send("MLAPI_TIME_SYNC", "MLAPI_TIME_SYNC", stream);
909+
InternalMessageHandler.Send(MLAPIConstants.MLAPI_TIME_SYNC, "MLAPI_TIME_SYNC", stream);
930910
}
931911
}
932912

@@ -1035,7 +1015,7 @@ internal void HandleApproval(uint clientId, int prefabId, bool approved, Vector3
10351015
pair.Value.WriteNetworkedVarData(stream, clientId);
10361016
}
10371017
}
1038-
InternalMessageHandler.Send(clientId, "MLAPI_CONNECTION_APPROVED", "MLAPI_INTERNAL", stream, true);
1018+
InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CONNECTION_APPROVED, "MLAPI_INTERNAL", stream, true);
10391019

10401020
if (OnClientConnectedCallback != null)
10411021
OnClientConnectedCallback.Invoke(clientId);
@@ -1075,7 +1055,7 @@ internal void HandleApproval(uint clientId, int prefabId, bool approved, Vector3
10751055
{
10761056
writer.WriteUInt32Packed(clientId);
10771057
}
1078-
InternalMessageHandler.Send(clientPair.Key, "MLAPI_ADD_OBJECT", "MLAPI_INTERNAL", stream);
1058+
InternalMessageHandler.Send(clientPair.Key, MLAPIConstants.MLAPI_ADD_OBJECT, "MLAPI_INTERNAL", stream);
10791059
}
10801060
}
10811061
}

MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Send.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
using System.IO;
22
using MLAPI.Collections;
3+
using MLAPI.Data;
34
using MLAPI.Profiler;
45
using MLAPI.Serialization;
56

67
namespace MLAPI.Internal
78
{
89
internal static partial class InternalMessageHandler
910
{
10-
internal static void Send(uint clientId, string messageType, string channelName, Stream messageStream, bool skipQueue = false)
11+
internal static void Send(uint clientId, byte messageType, string channelName, Stream messageStream, bool skipQueue = false)
1112
{
1213
using (PooledBitStream stream = PooledBitStream.Get())
1314
{
1415
BitWriter writer = new BitWriter(stream);
15-
writer.WriteUInt16Packed(MessageManager.messageTypes[messageType]);
16+
writer.WriteByte(messageType);
1617
stream.CopyFrom(messageStream);
1718

18-
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, messageType);
19+
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, MLAPIConstants.MESSAGE_NAMES[messageType]);
1920
byte error;
2021
if (skipQueue)
2122
netManager.NetworkConfig.NetworkTransport.QueueMessageForSending(clientId, stream.GetBuffer(), (int)stream.Length, MessageManager.channels[channelName], true, out error);
@@ -25,15 +26,15 @@ internal static void Send(uint clientId, string messageType, string channelName,
2526
}
2627
}
2728

28-
internal static void Send(string messageType, string channelName, Stream messageStream)
29+
internal static void Send(byte messageType, string channelName, Stream messageStream)
2930
{
3031
using (PooledBitStream stream = PooledBitStream.Get())
3132
{
3233
BitWriter writer = new BitWriter(stream);
33-
writer.WriteUInt16Packed(MessageManager.messageTypes[messageType]);
34+
writer.WriteByte(messageType);
3435
stream.CopyFrom(messageStream);
3536

36-
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, messageType);
37+
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, MLAPIConstants.MESSAGE_NAMES[messageType]);
3738
for (int i = 0; i < netManager.ConnectedClientsList.Count; i++)
3839
{
3940
byte error;
@@ -43,15 +44,15 @@ internal static void Send(string messageType, string channelName, Stream message
4344
}
4445
}
4546

46-
internal static void Send(string messageType, string channelName, uint clientIdToIgnore, Stream messageStream)
47+
internal static void Send(byte messageType, string channelName, uint clientIdToIgnore, Stream messageStream)
4748
{
4849
using (PooledBitStream stream = PooledBitStream.Get())
4950
{
5051
BitWriter writer = new BitWriter(stream);
51-
writer.WriteUInt16Packed(MessageManager.messageTypes[messageType]);
52+
writer.WriteByte(messageType);
5253
stream.CopyFrom(messageStream);
5354

54-
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, messageType);
55+
NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, MLAPIConstants.MESSAGE_NAMES[messageType]);
5556
for (int i = 0; i < netManager.ConnectedClientsList.Count; i++)
5657
{
5758
if (netManager.ConnectedClientsList[i].ClientId == clientIdToIgnore)

MLAPI/NetworkingManagerComponents/Core/MessageManager.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,5 @@ internal static class MessageManager
66
{
77
internal static readonly Dictionary<string, int> channels = new Dictionary<string, int>();
88
internal static readonly Dictionary<int, string> reverseChannels = new Dictionary<int, string>();
9-
internal static readonly Dictionary<string, ushort> messageTypes = new Dictionary<string, ushort>();
10-
internal static readonly Dictionary<ushort, string> reverseMessageTypes = new Dictionary<ushort, string>();
119
}
1210
}

MLAPI/NetworkingManagerComponents/Core/NetworkPoolManager.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using MLAPI.Data;
23
using MLAPI.Internal;
34
using MLAPI.Logging;
45
using MLAPI.Serialization;
@@ -79,7 +80,7 @@ public static NetworkedObject SpawnPoolObject(string poolName, Vector3 position,
7980
writer.WriteSinglePacked(rotation.eulerAngles.y);
8081
writer.WriteSinglePacked(rotation.eulerAngles.z);
8182

82-
InternalMessageHandler.Send("MLAPI_SPAWN_POOL_OBJECT", "MLAPI_INTERNAL", stream);
83+
InternalMessageHandler.Send(MLAPIConstants.MLAPI_SPAWN_POOL_OBJECT, "MLAPI_INTERNAL", stream);
8384
}
8485
return netObject;
8586
}
@@ -101,7 +102,7 @@ public static void DestroyPoolObject(NetworkedObject netObject)
101102
BitWriter writer = new BitWriter(stream);
102103
writer.WriteUInt32Packed(netObject.NetworkId);
103104

104-
InternalMessageHandler.Send("MLAPI_DESTROY_POOL_OBJECT", "MLAPI_INTERNAL", stream);
105+
InternalMessageHandler.Send(MLAPIConstants.MLAPI_DESTROY_POOL_OBJECT, "MLAPI_INTERNAL", stream);
105106
}
106107
}
107108
}

MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Generic;
2+
using MLAPI.Data;
23
using MLAPI.Internal;
34
using MLAPI.Logging;
45
using MLAPI.Serialization;
@@ -63,7 +64,7 @@ public static void SwitchScene(string sceneName)
6364
BitWriter writer = new BitWriter(stream);
6465
writer.WriteUInt32Packed(sceneNameToIndex[sceneName]);
6566

66-
InternalMessageHandler.Send("MLAPI_SWITCH_SCENE", "MLAPI_INTERNAL", stream);
67+
InternalMessageHandler.Send(MLAPIConstants.MLAPI_SWITCH_SCENE, "MLAPI_INTERNAL", stream);
6768
}
6869
}
6970

0 commit comments

Comments
 (0)