You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-17 23:56:30 +09:00
Fix for unreliable sequenced channels. If you sent too many messages rapidly that get dropped along the wire messages would stop being enqueued.
This commit is contained in:
@@ -52,10 +52,7 @@ namespace Lidgren.Network
|
|||||||
internal override NetSendResult Enqueue(NetOutgoingMessage message)
|
internal override NetSendResult Enqueue(NetOutgoingMessage message)
|
||||||
{
|
{
|
||||||
m_queuedSends.Enqueue(message);
|
m_queuedSends.Enqueue(message);
|
||||||
|
if (m_queuedSends.Count <= GetAllowedSends())
|
||||||
int queueLen = m_queuedSends.Count;
|
|
||||||
int left = m_windowSize - ((m_sendStart + NetConstants.NumSequenceNumbers) - m_windowStart) % NetConstants.NumSequenceNumbers;
|
|
||||||
if (queueLen <= left)
|
|
||||||
return NetSendResult.Sent;
|
return NetSendResult.Sent;
|
||||||
return NetSendResult.Queued;
|
return NetSendResult.Queued;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Lidgren.Network
|
|||||||
internal override NetSendResult Enqueue(NetOutgoingMessage message)
|
internal override NetSendResult Enqueue(NetOutgoingMessage message)
|
||||||
{
|
{
|
||||||
int queueLen = m_queuedSends.Count + 1;
|
int queueLen = m_queuedSends.Count + 1;
|
||||||
int left = m_windowSize - ((m_sendStart + NetConstants.NumSequenceNumbers) - m_windowStart) % NetConstants.NumSequenceNumbers;
|
int left = GetAllowedSends();
|
||||||
if (queueLen > left)
|
if (queueLen > left)
|
||||||
return NetSendResult.Dropped;
|
return NetSendResult.Dropped;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user