static void sendSomeMessages() { for (uint i = 0; i < 10000u; i++) { using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter()) { // write mask writer.WriteUInt64(1); // behaviour length writer.WriteInt32(1); // behaviour delta // sync object mask writer.WriteUInt64(0); // sync object delta // assume no sync objects for this test // sync var mask writer.WriteUInt64(1); // sync var delta // assume sync var has changed its value to 10 writer.WriteInt32(10); // send message NetworkServer.localConnection.Send(new UpdateVarsMessage { netId = i, payload = writer.ToArraySegment() }); } } }
public void BufferCanWriteReadMorePackageAfterCallingReset() { const string expectedMessage = "Some Message"; const float expectedValue = 46.8f; for (int i = 0; i < 5; i++) { using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter()) { writer.WriteInt32(i); writer.WriteString(expectedMessage); writer.WriteSingle(expectedValue); buffer.Write(writer.ToArraySegment()); } ArraySegment <byte> package = buffer.GetNextPacket(); int index; string message; float value; using (PooledNetworkReader reader = NetworkReaderPool.GetReader(package)) { index = reader.ReadInt32(); message = reader.ReadString(); value = reader.ReadSingle(); } Assert.That(index, Is.EqualTo(i)); Assert.That(message, Is.EqualTo(expectedMessage)); Assert.That(value, Is.EqualTo(expectedValue)); buffer.ResetBuffer(); } }
static void WInt32() { using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter()) { for (int i = 0; i < 1000; i++) { writer.WriteInt32(i * 1000); } } }
public IEnumerator SendMany() { Task <RunNode.Result> task = RunNode.RunAsync("ReceiveManyMessages.js", 5_000); yield return(server.WaitForConnection); const int messageCount = 100; for (int i = 0; i < messageCount; i++) { using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter()) { writer.WriteByte((byte)i); writer.WriteInt32(100); ArraySegment <byte> segment = writer.ToArraySegment(); server.ServerSend(new List <int> { 1 }, Channels.DefaultReliable, segment); } } yield return(new WaitForSeconds(1)); server.ServerDisconnect(1); yield return(new WaitUntil(() => task.IsCompleted)); RunNode.Result result = task.Result; string expectedFormat = "length: 5 msg: {0:X2} 64 00 00 00"; IEnumerable <string> expected = Enumerable.Range(0, messageCount).Select(i => string.Format(expectedFormat, i)); result.AssetTimeout(false); result.AssetOutput(expected.ToArray()); result.AssetErrors(); }