Skip to content

Commit f6ef7b1

Browse files
committed
[修改]1. 修改消息发送队列的数据结构为链表的方式
1 parent ed7ca04 commit f6ef7b1

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

Runtime/Network/Network/NetworkManager.NetworkChannelBase.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public abstract class NetworkChannelBase : INetworkChannel, IDisposable
2525
private const float DefaultHeartBeatInterval = 30f;
2626
private const int DefaultMissHeartBeatCountByClose = 10;
2727

28-
protected readonly Queue<MessageObject> PSendPacketPool;
28+
protected readonly GameFrameworkLinkedList<MessageObject> PSendPacketPool;
2929
protected readonly INetworkChannelHelper PNetworkChannelHelper;
3030
protected AddressFamily PAddressFamily;
3131

@@ -96,7 +96,7 @@ protected bool PActive
9696
public NetworkChannelBase(string name, INetworkChannelHelper networkChannelHelper, int rpcTimeout)
9797
{
9898
Name = name ?? string.Empty;
99-
PSendPacketPool = new Queue<MessageObject>(128);
99+
PSendPacketPool = new GameFrameworkLinkedList<MessageObject>();
100100
PNetworkChannelHelper = networkChannelHelper;
101101
PAddressFamily = AddressFamily.Unknown;
102102
PResetHeartBeatElapseSecondsWhenReceivePacket = false;
@@ -117,7 +117,6 @@ public NetworkChannelBase(string name, INetworkChannelHelper networkChannelHelpe
117117
NetworkChannelClosed = null;
118118
NetworkChannelMissHeartBeat = null;
119119
NetworkChannelError = null;
120-
NetworkChannelCustomError = null;
121120

122121
networkChannelHelper.Initialize(this);
123122
}
@@ -669,7 +668,7 @@ public void Send<T>(T messageObject) where T : MessageObject
669668

670669
lock (PSendPacketPool)
671670
{
672-
PSendPacketPool.Enqueue(messageObject);
671+
PSendPacketPool.AddLast(messageObject);
673672
}
674673
}
675674

@@ -740,10 +739,10 @@ protected virtual bool ProcessSend()
740739
}
741740

742741

743-
while (PSendPacketPool.Count > 0)
742+
while (PSendPacketPool.First !=null)
744743
{
745-
var messageObject = PSendPacketPool.Dequeue();
746-
744+
var messageObject = PSendPacketPool.First.Value;
745+
PSendPacketPool.RemoveFirst();
747746
bool serializeResult = false;
748747
try
749748
{

Runtime/Network/Network/WebSocket/NetworkManager.WebSocketNetworkChannel.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,12 @@ protected override bool ProcessSend()
9393
return false;
9494
}
9595

96-
while (PSendPacketPool.Count > 0)
96+
while (PSendPacketPool.First != null)
9797
{
98-
var messageObject = PSendPacketPool.Dequeue();
98+
var messageObject = PSendPacketPool.First.Value;
99+
PSendPacketPool.RemoveFirst();
99100

100-
bool serializeResult = false;
101+
bool serializeResult;
101102
try
102103
{
103104
serializeResult = ProcessSendMessage(messageObject);

0 commit comments

Comments
 (0)