Skip to content

Commit 5b19dc3

Browse files
authored
refactor: moving static send to NetworkServer (MirageNet#692)
BREAKING CHANGE: moving NetworkPlayer.Send to NetworkServer.SendToMany
1 parent bfffa35 commit 5b19dc3

File tree

5 files changed

+25
-24
lines changed

5 files changed

+25
-24
lines changed

Assets/Mirage/Components/LobbyReady.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void SendToReady<T>(NetworkIdentity identity, T msg, bool includeOwner =
3636
}
3737
}
3838

39-
NetworkPlayer.Send(connectionsCache, msg, channelId);
39+
NetworkServer.SendToMany(connectionsCache, msg, channelId);
4040
}
4141
}
4242
}

Assets/Mirage/Runtime/NetworkIdentity.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ internal void SendToObservers<T>(T msg, bool includeOwner = true, int channelId
12791279

12801280
if (includeOwner)
12811281
{
1282-
NetworkPlayer.Send(observers, msg, channelId);
1282+
NetworkServer.SendToMany(observers, msg, channelId);
12831283
}
12841284
else
12851285
{
@@ -1291,7 +1291,7 @@ internal void SendToObservers<T>(T msg, bool includeOwner = true, int channelId
12911291
connectionsExcludeSelf.Add(conn);
12921292
}
12931293
}
1294-
NetworkPlayer.Send(connectionsExcludeSelf, msg, channelId);
1294+
NetworkServer.SendToMany(connectionsExcludeSelf, msg, channelId);
12951295
}
12961296
}
12971297

Assets/Mirage/Runtime/NetworkPlayer.cs

-20
Original file line numberDiff line numberDiff line change
@@ -174,26 +174,6 @@ public void ClearHandlers()
174174
messageHandlers.Clear();
175175
}
176176

177-
public static void Send<T>(IEnumerable<INetworkPlayer> connections, T msg, int channelId = Channel.Reliable)
178-
{
179-
using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter())
180-
{
181-
// pack message into byte[] once
182-
MessagePacker.Pack(msg, writer);
183-
var segment = writer.ToArraySegment();
184-
int count = 0;
185-
186-
foreach (INetworkPlayer conn in connections)
187-
{
188-
// send to all connections, but don't wait for them
189-
conn.Send(segment, channelId);
190-
count++;
191-
}
192-
193-
NetworkDiagnostics.OnSend(msg, channelId, segment.Count, count);
194-
}
195-
}
196-
197177
/// <summary>
198178
/// This sends a network message to the connection.
199179
/// </summary>

Assets/Mirage/Runtime/NetworkServer.cs

+21-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,27 @@ internal void SetLocalConnection(NetworkClient client, IConnection tconn)
361361
public void SendToAll<T>(T msg, int channelId = Channel.Reliable)
362362
{
363363
if (logger.LogEnabled()) logger.Log("Server.SendToAll id:" + typeof(T));
364-
NetworkPlayer.Send(connections, msg, channelId);
364+
SendToMany(connections, msg, channelId);
365+
}
366+
367+
public static void SendToMany<T>(IEnumerable<INetworkPlayer> connections, T msg, int channelId = Channel.Reliable)
368+
{
369+
using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter())
370+
{
371+
// pack message into byte[] once
372+
MessagePacker.Pack(msg, writer);
373+
var segment = writer.ToArraySegment();
374+
int count = 0;
375+
376+
foreach (INetworkPlayer conn in connections)
377+
{
378+
// send to all connections, but don't wait for them
379+
conn.Send(segment, channelId);
380+
count++;
381+
}
382+
383+
NetworkDiagnostics.OnSend(msg, channelId, segment.Count, count);
384+
}
365385
}
366386

367387
async UniTaskVoid ConnectionAcceptedAsync(INetworkPlayer conn)

Assets/Mirage/Weaver/Processors/ReaderWriterProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ private static bool IsMessageMethod(MethodReference method)
228228
method.Is<NetworkPlayer>(nameof(NetworkPlayer.UnregisterHandler)) ||
229229
method.Is<NetworkClient>(nameof(NetworkClient.Send)) ||
230230
method.Is<NetworkServer>(nameof(NetworkServer.SendToAll)) ||
231+
method.Is<NetworkServer>(nameof(NetworkServer.SendToMany)) ||
231232
method.Is<INetworkServer>(nameof(INetworkServer.SendToAll));
232233
}
233234

0 commit comments

Comments
 (0)