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
NetPeerConfiguration.UseCoalescing added
This commit is contained in:
@@ -182,7 +182,8 @@ namespace Lidgren.Network
|
|||||||
m_lastSentUnsentMessages = now;
|
m_lastSentUnsentMessages = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mtu = m_peerConfiguration.MaximumTransmissionUnit;
|
int mtu = m_peerConfiguration.m_maximumTransmissionUnit;
|
||||||
|
bool useCoalescing = m_peerConfiguration.m_useMessageCoalescing;
|
||||||
|
|
||||||
float throttleThreshold = m_peerConfiguration.m_throttlePeakBytes;
|
float throttleThreshold = m_peerConfiguration.m_throttlePeakBytes;
|
||||||
if (m_throttleDebt < throttleThreshold)
|
if (m_throttleDebt < throttleThreshold)
|
||||||
@@ -204,7 +205,7 @@ namespace Lidgren.Network
|
|||||||
int msgPayloadLength = msg.LengthBytes;
|
int msgPayloadLength = msg.LengthBytes;
|
||||||
msg.m_lastSentTime = now;
|
msg.m_lastSentTime = now;
|
||||||
|
|
||||||
if (ptr > 0 && (ptr + NetPeer.kMaxPacketHeaderSize + msgPayloadLength) > mtu)
|
if (!useCoalescing || (ptr > 0 && (ptr + NetPeer.kMaxPacketHeaderSize + msgPayloadLength) > mtu))
|
||||||
{
|
{
|
||||||
// send packet and start new packet
|
// send packet and start new packet
|
||||||
bool connectionReset;
|
bool connectionReset;
|
||||||
@@ -561,6 +562,9 @@ namespace Lidgren.Network
|
|||||||
{
|
{
|
||||||
if (msg.IsSent)
|
if (msg.IsSent)
|
||||||
throw new NetException("Message has already been sent!");
|
throw new NetException("Message has already been sent!");
|
||||||
|
|
||||||
|
NetException.Assert(sequenceChannel >= 0 && sequenceChannel < NetConstants.NetChannelsPerDeliveryMethod, "Sequence channel must be between 0 and NetConstants.NetChannelsPerDeliveryMethod (" + NetConstants.NetChannelsPerDeliveryMethod + ")");
|
||||||
|
|
||||||
msg.m_type = (NetMessageType)((int)method + sequenceChannel);
|
msg.m_type = (NetMessageType)((int)method + sequenceChannel);
|
||||||
EnqueueOutgoingMessage(msg);
|
EnqueueOutgoingMessage(msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ namespace Lidgren.Network
|
|||||||
internal int m_receiveBufferSize, m_sendBufferSize;
|
internal int m_receiveBufferSize, m_sendBufferSize;
|
||||||
internal int m_defaultOutgoingMessageCapacity;
|
internal int m_defaultOutgoingMessageCapacity;
|
||||||
internal int m_maximumTransmissionUnit;
|
internal int m_maximumTransmissionUnit;
|
||||||
|
internal bool m_useMessageCoalescing;
|
||||||
internal int m_maximumConnections;
|
internal int m_maximumConnections;
|
||||||
internal NetIncomingMessageType m_disabledTypes;
|
internal NetIncomingMessageType m_disabledTypes;
|
||||||
internal int m_throttleBytesPerSecond;
|
internal int m_throttleBytesPerSecond;
|
||||||
@@ -85,6 +86,7 @@ namespace Lidgren.Network
|
|||||||
m_handshakeAttemptDelay = 1.0f;
|
m_handshakeAttemptDelay = 1.0f;
|
||||||
m_handshakeMaxAttempts = 7;
|
m_handshakeMaxAttempts = 7;
|
||||||
m_maxRecycledBytesKept = 128 * 1024;
|
m_maxRecycledBytesKept = 128 * 1024;
|
||||||
|
m_useMessageCoalescing = true;
|
||||||
|
|
||||||
m_loss = 0.0f;
|
m_loss = 0.0f;
|
||||||
m_minimumOneWayLatency = 0.0f;
|
m_minimumOneWayLatency = 0.0f;
|
||||||
@@ -254,6 +256,15 @@ namespace Lidgren.Network
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets if message coalescing (sending multiple messages in a single packet) should be used. Normally this should be true.
|
||||||
|
/// </summary>
|
||||||
|
public bool UseMessageCoalescing
|
||||||
|
{
|
||||||
|
get { return m_useMessageCoalescing; }
|
||||||
|
set { m_useMessageCoalescing = value; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the maximum amount of connections this peer can hold. Cannot be changed once NetPeer is initialized.
|
/// Gets or sets the maximum amount of connections this peer can hold. Cannot be changed once NetPeer is initialized.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user