Added Tickrate config
This commit is contained in:
parent
a56902d35a
commit
a1c027447b
@ -15,7 +15,7 @@ namespace MLAPI
|
|||||||
internal HashSet<ushort> RegisteredPassthroughMessageTypes = new HashSet<ushort>();
|
internal HashSet<ushort> RegisteredPassthroughMessageTypes = new HashSet<ushort>();
|
||||||
public List<string> RegisteredScenes = new List<string>();
|
public List<string> RegisteredScenes = new List<string>();
|
||||||
public int MessageBufferSize = 65535;
|
public int MessageBufferSize = 65535;
|
||||||
public int MaxMessagesPerFrame = 150;
|
public int Tickrate = 64;
|
||||||
public int MaxConnections = 100;
|
public int MaxConnections = 100;
|
||||||
public int Port = 7777;
|
public int Port = 7777;
|
||||||
public string Address = "127.0.0.1";
|
public string Address = "127.0.0.1";
|
||||||
|
@ -288,20 +288,20 @@ namespace MLAPI
|
|||||||
|
|
||||||
//Receive stuff
|
//Receive stuff
|
||||||
internal int hostId;
|
internal int hostId;
|
||||||
int clientId;
|
private int clientId;
|
||||||
int channelId;
|
private int channelId;
|
||||||
int receivedSize;
|
private int receivedSize;
|
||||||
byte error;
|
private byte error;
|
||||||
|
private float lastTickTime;
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if(isListening)
|
if(isListening && (Time.time - lastTickTime >= (1f / NetworkConfig.Tickrate)))
|
||||||
{
|
{
|
||||||
NetworkEventType eventType;
|
foreach (KeyValuePair<int, NetworkedClient> pair in connectedClients)
|
||||||
int messagesProcessed = 0;
|
|
||||||
do
|
|
||||||
{
|
{
|
||||||
messagesProcessed++;
|
NetworkTransport.SendQueuedMessages(hostId, pair.Key, out error);
|
||||||
eventType = NetworkTransport.Receive(out hostId, out clientId, out channelId, messageBuffer, messageBuffer.Length, out receivedSize, out error);
|
}
|
||||||
|
NetworkEventType eventType = NetworkTransport.Receive(out hostId, out clientId, out channelId, messageBuffer, messageBuffer.Length, out receivedSize, out error);
|
||||||
NetworkError networkError = (NetworkError)error;
|
NetworkError networkError = (NetworkError)error;
|
||||||
if (networkError == NetworkError.Timeout)
|
if (networkError == NetworkError.Timeout)
|
||||||
{
|
{
|
||||||
@ -309,14 +309,15 @@ namespace MLAPI
|
|||||||
if (isServer)
|
if (isServer)
|
||||||
{
|
{
|
||||||
OnClientDisconnect(clientId);
|
OnClientDisconnect(clientId);
|
||||||
continue;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (networkError != NetworkError.Ok)
|
else if (networkError != NetworkError.Ok)
|
||||||
{
|
{
|
||||||
Debug.LogWarning("MLAPI: NetworkTransport receive error: " + networkError.ToString());
|
Debug.LogWarning("MLAPI: NetworkTransport receive error: " + networkError.ToString());
|
||||||
continue;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (eventType)
|
switch (eventType)
|
||||||
{
|
{
|
||||||
case NetworkEventType.ConnectEvent:
|
case NetworkEventType.ConnectEvent:
|
||||||
@ -351,20 +352,16 @@ namespace MLAPI
|
|||||||
break;
|
break;
|
||||||
case NetworkEventType.DisconnectEvent:
|
case NetworkEventType.DisconnectEvent:
|
||||||
if (isServer)
|
if (isServer)
|
||||||
{
|
|
||||||
OnClientDisconnect(clientId);
|
OnClientDisconnect(clientId);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (eventType != NetworkEventType.Nothing &&
|
|
||||||
(messagesProcessed < NetworkConfig.MaxMessagesPerFrame || NetworkConfig.MaxMessagesPerFrame < 0));
|
|
||||||
|
|
||||||
}
|
|
||||||
if (isServer)
|
if (isServer)
|
||||||
{
|
{
|
||||||
LagCompensationManager.AddFrames();
|
LagCompensationManager.AddFrames();
|
||||||
NetworkedObject.InvokeSyncvarUpdate();
|
NetworkedObject.InvokeSyncvarUpdate();
|
||||||
}
|
}
|
||||||
|
lastTickTime = Time.time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator ApprovalTimeout(int clientId)
|
private IEnumerator ApprovalTimeout(int clientId)
|
||||||
@ -826,7 +823,7 @@ namespace MLAPI
|
|||||||
writer.Write((ushort)data.Length);
|
writer.Write((ushort)data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, targetId, channelId, stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, targetId, channelId, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -874,7 +871,7 @@ namespace MLAPI
|
|||||||
}
|
}
|
||||||
if (isPassthrough)
|
if (isPassthrough)
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
NetworkTransport.Send(hostId, clientId, MessageManager.channels[channelName], stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, clientId, MessageManager.channels[channelName], stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -911,7 +908,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -950,7 +947,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -989,7 +986,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1031,7 +1028,7 @@ namespace MLAPI
|
|||||||
//Client trying to send data to host
|
//Client trying to send data to host
|
||||||
clientId = serverClientId;
|
clientId = serverClientId;
|
||||||
}
|
}
|
||||||
NetworkTransport.Send(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
NetworkTransport.QueueMessageForSending(hostId, clientId, channel, stream.GetBuffer(), sizeOfStream, out error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user