Commit Graph

3753 Commits

Author SHA1 Message Date
vis2k
bbde7edc1d add comments 2021-06-18 18:18:51 +08:00
vis2k
34492c5097 NetworkConnectionToClient/Server: Validate packet size again before passing batch to transport 2021-06-18 17:19:09 +08:00
vis2k
4382eb0f6e syntax 2021-06-18 16:58:45 +08:00
vis2k
8338d02301 syntax 2021-06-18 16:48:59 +08:00
vis2k
651020852b syntax 2021-06-18 16:45:04 +08:00
vis2k
caf143f4d7 update comment 2021-06-18 16:44:38 +08:00
vis2k
227efb6c7a NetworkConnection.ValidatePacketSize: syntax 2021-06-18 16:41:40 +08:00
vis2k
d818b2d4aa Tests: MemoryTransport guarantees max message size just like a real transport would. Guarantees that even if Mirror tests have max message size issues, transport would catch it. 2021-06-18 15:55:52 +08:00
vis2k
0cce4962d2 NetworkServerTest: MaxMessageSize + 1 server->client too 2021-06-18 13:58:38 +08:00
vis2k
0d86b2cdde NetworkServerTest: max message size server->client too 2021-06-18 13:57:49 +08:00
vis2k
75b17b9a8d NetworkServerTests: MaxMessageSize + 1 2021-06-18 13:56:27 +08:00
vis2k
4703c5e939 NetworkServerTests: MaxMessageSize 2021-06-18 13:55:44 +08:00
vis2k
e78304c465 NetworkServerTest: VariableSize message size adjusted for WriteBytesAndSize header 2021-06-18 13:51:24 +08:00
vis2k
8ded81fa20 cleanup 2021-06-18 13:03:52 +08:00
vis2k
400d5c7a10 NetworkServerTests: VariableSizedMessage for convenience 2021-06-18 13:02:35 +08:00
vis2k
a568ee4c6f syntax 2021-06-18 12:13:52 +08:00
vis2k
379820c435 NetworkServerTest: send data race test to avoid previous bug where larger batch threshold messages would be sent immediately, out of order 2021-06-18 11:57:01 +08:00
vis2k
e374d21f86 better 2021-06-18 11:55:13 +08:00
vis2k
9bff0abbf3 NetworkServerTest: send data race test to avoid previous bug where larger batch threshold messages would be sent immediately, out of order 2021-06-18 11:54:28 +08:00
vis2k
26a8f19204 remove unnecessary imports 2021-06-18 11:42:54 +08:00
vis2k
75c145b175 replaced all GetMaxBatchSize with GetBatchTreshold everywhere 2021-06-17 20:26:04 +08:00
vis2k
b538285b9d Transport.GetMaxBatchSize obsoleted and replaced by GetBatchThreshold 2021-06-17 20:26:02 +08:00
vis2k
2a563b96df
fix: Batcher 'MaxBatchSize' changed to 'Threshold' to support larger messages too. They simply become large batches, while smaller ones are still fitted into 'Threshold'. fixes data race where larger messages would be sent immediately, while smaller ones would be sent at the end of the frame. prepares for timestamp batching which assumes a timestamp prefix for ALL batches (including larger ones, which previously would be treated as not a batch) (#2787)
* fix: Batcher 'MaxBatchSize' changed to 'Threshold' to support larger messages too. They simply become large batches, while smaller ones are still fitted into 'Threshold'. fixes data race where larger messages would be sent immediately, while smaller ones would be sent at the end of the frame. prepares for timestamp batching which assumes a timestamp prefix for ALL batches (including larger ones, which previously would be treated as not a batch)

* add comment

* better comment

* do-while

* better comment
2021-06-17 19:08:50 +08:00
vis2k
41dc651576 Tests: >= max batch size send test added to NetworkServerTests 2021-06-17 12:31:16 +08:00
vis2k
90d23802ab Tests: >= max batch size send test added to NetworkServerTests 2021-06-17 12:29:46 +08:00
vis2k
9aa34e8dae NetworkClient/NetworkServer OnConnected/OnDisconnected events are now public so that custom NetworkManagers can hook into them too 2021-06-17 11:23:01 +08:00
vis2k
342da4fbc7 remove old comments 2021-06-16 23:04:28 +08:00
vis2k
70bfd3acc1 remove old comment 2021-06-16 18:52:07 +08:00
vis2k
185468ea38 NetworkServerTest: Send_ServerToClientMessage 2021-06-16 17:57:47 +08:00
vis2k
764cd988c5 rename 2021-06-16 17:55:48 +08:00
vis2k
22e6a83f00 NetworkClientTests: remove redundant Send test 2021-06-16 17:54:09 +08:00
vis2k
d07f10b7be use NetworkTime.localTime where local time was previously implied when using NetworkTime.time on the server. for clarity. 2021-06-16 16:58:20 +08:00
vis2k
7aecc2b19a feature: NetworkTime.localTime exposed for double precision alternative to Time.time (needed by timestamp batching) 2021-06-16 16:53:08 +08:00
vis2k
d56c0e0ad8 syntax 2021-06-16 16:50:57 +08:00
vis2k
f2496cf7bc NetworkTime: LocalTime() renamed to .localTime for consistency with .time 2021-06-16 16:50:16 +08:00
vis2k
79c067e4aa MirrorTest: ConnectClientBlockingAuthenticatedAndReady helper function 2021-06-16 12:47:05 +08:00
vis2k
2df5357647 rename 2021-06-16 12:44:13 +08:00
vis2k
b98e01b348 typo 2021-06-16 12:43:40 +08:00
vis2k
890cbba297 NetworkServerTest: SendCommand_RequiresAuthority 2021-06-16 12:43:15 +08:00
vis2k
831a2efda4 MirrorTest: ConnectClientBlocking returns server connection for convenience 2021-06-16 12:41:51 +08:00
vis2k
8720325892 NetworkServerTest: ReadyMessageSetsClientReady() simplified 2021-06-16 12:38:27 +08:00
vis2k
5a9adcd9ed NetworkBehaviourTests: remove redundant SendCommandInternal test 2021-06-16 12:35:44 +08:00
vis2k
501d953216 MirrorTest: ConnectClientBlockingAndAuthenticate helper function 2021-06-16 12:34:44 +08:00
vis2k
def54b85fc NetworkServerTest: [Command] tests use weaved [Command] functions now 2021-06-16 12:31:53 +08:00
vis2k
9df7db3db2 NetworkIdentityTests: remove redundant HandleCommand test 2021-06-16 12:29:27 +08:00
vis2k
56c46abd18 syntax 2021-06-16 12:21:53 +08:00
vis2k
0c13f23798 NetworkServerTest: [Command] with wrong netId 2021-06-16 12:21:15 +08:00
vis2k
7c9fd6d10d NetworkServerTest: [Command] only allowed on owned objects 2021-06-16 12:18:52 +08:00
vis2k
c136c9c7f4 NetworkServerTest: [Command] with multiple components 2021-06-16 12:14:54 +08:00
vis2k
453e94a35d NetworkServerTest: [Command] test simple version 2021-06-16 12:11:27 +08:00
vis2k
e49a5392b3 update comment 2021-06-16 12:07:40 +08:00
vis2k
02399940d1 remove unnecessary 2021-06-16 12:06:00 +08:00
vis2k
3577e187b1 comment 2021-06-16 12:03:44 +08:00
vis2k
f5f60ab177 syntax 2021-06-16 12:02:20 +08:00
vis2k
f80d5fd958 NetworkServerTest: HideForConnection rewritten 2021-06-16 12:01:54 +08:00
vis2k
ba019a678c NetworkServerTest: ShowForConnection rewritten 2021-06-16 11:59:10 +08:00
vis2k
d18472b4d5 remove unnecessary 2021-06-16 11:41:25 +08:00
vis2k
b052e2bd91 NetworkServerTest: remove unused 2021-06-16 11:40:05 +08:00
vis2k
6037e7ac1f NetworkServerTest: replace over engineered test 2021-06-16 11:38:58 +08:00
vis2k
3debc65ffd NetworkServerTest cleanup 2021-06-16 11:28:49 +08:00
vis2k
ad5eac2016 sort tests 2021-06-15 17:46:22 +08:00
vis2k
6e015e9442 syntax 2021-06-15 17:44:57 +08:00
vis2k
acf9eff9d0 syntax 2021-06-15 17:44:34 +08:00
vis2k
5d77cda200 cleanup 2021-06-15 17:44:02 +08:00
vis2k
87cdf7bedd NetworkServerTest: Unspawn simplified 2021-06-15 17:43:11 +08:00
vis2k
e18a17e8c7 cleanup 2021-06-15 17:41:45 +08:00
vis2k
58f7ff8902 cleanup 2021-06-15 17:39:52 +08:00
vis2k
0385effd13 syntax 2021-06-15 17:28:53 +08:00
vis2k
f08b6c2806 NetworkServerTest: GetNetworkIdentity tests simplified 2021-06-15 17:28:07 +08:00
vis2k
6d18c42593 NetworkServerTest: SendToClientOfPlayer test removed because it did not even test SendToClientOfPlayer, and the function is obsolete anyway 2021-06-15 17:26:09 +08:00
vis2k
e02032f1ca NetworkServerTest: SendToClientOfPlayer cleanup 2021-06-15 17:24:29 +08:00
vis2k
4b2fa2c5b4 NetworkServerTest: RegisterUnregisterClearHandler cleanup 2021-06-15 17:22:48 +08:00
vis2k
50c6a69492 syntax 2021-06-15 17:17:49 +08:00
vis2k
afeef26fdb NetworkServerTest: SendToAll simplified 2021-06-15 17:14:34 +08:00
vis2k
b2ae4ef7e1 NetworkServerTest: CommandMessageCallsCommand cleanup 2021-06-15 17:11:31 +08:00
vis2k
26e18d7e87 NetworkServerTest: ReadyMessageSetsClientReady cleanup 2021-06-15 17:06:51 +08:00
vis2k
092ff4538a NetworkIdentityTests: reuse CreateLocalConnectionPair 2021-06-15 17:03:57 +08:00
vis2k
79c6897249 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 17:01:44 +08:00
vis2k
06628b3b70 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 17:00:31 +08:00
vis2k
841c3ca2f2 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 16:58:54 +08:00
vis2k
855e0017c8 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 16:50:23 +08:00
vis2k
bf7250c096 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 16:49:44 +08:00
vis2k
68c72a7d54 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 16:48:45 +08:00
vis2k
bfd03adb09 NetworkServerTest: reuse CreateLocalConnectionPair 2021-06-15 16:47:04 +08:00
vis2k
46d49381b0 syntax 2021-06-15 16:46:54 +08:00
vis2k
58cae69647 NetworkServerTest: SetAllClientsNotReady reuses CreateLocalConnectionPair 2021-06-15 16:45:27 +08:00
vis2k
bf6957c150 NetworkServerTest: RemoveLocalConnection reuses CreateLocalConnectionPair 2021-06-15 16:44:31 +08:00
vis2k
133b1eb841 LocalConnectionTest: use CreateLocalConnectionPair 2021-06-15 16:42:34 +08:00
vis2k
7f36a75ef7 NetworkServerTest: SetClientReadyAndNotReady simplified 2021-06-15 16:40:58 +08:00
vis2k
2506195e42 MirrorTest: CreateLocalConnectionPair helper function 2021-06-15 16:40:48 +08:00
vis2k
34634e51b0 LocalConnection classes made public for tests 2021-06-15 16:39:06 +08:00
vis2k
2706eb30b9 LocalConnectionToClient made internal for tests 2021-06-15 16:37:37 +08:00
MrGadget
8218979e32
fix: Prevent m_AssetId set to empty string (#2766)
* fix: Prevent m_AssetId set to empty string
Fixes: #2765

Checks path for empty string before assigning to `m_AssetId`.

I left commented debug logs in place from testing, which was setting `NetworkIdentity.ServerOnly` on and off both in normal edit mode and prefab edit mode. In either mode, OnValdidate fires 4 times, and two of those try to set an empty string to `m_AssetId`.

* Changes as requested

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

* Update NetworkIdentity.cs

Co-authored-by: vis2k <info@noobtuts.com>
2021-06-15 16:10:42 +08:00
vis2k
b08cc62fd4 NetworkServerTest: OnDataReceivedInvalidConnectionId simplified 2021-06-15 14:16:55 +08:00
vis2k
e827c6c0f3 fix: NetworkClient.Shutdown now clears OnDis/ConnectedEvents 2021-06-15 14:13:05 +08:00
vis2k
68a4a06926 fix: NetworkServer.Shutdown now clears OnDis/ConnectedEvents 2021-06-15 14:11:02 +08:00
vis2k
8295c8d5ab rename 2021-06-15 13:58:20 +08:00
vis2k
a45cef2536 Tests: reuse ProcessMessages 2021-06-15 13:58:03 +08:00
vis2k
3d0c13ec6a MirrorTest: ProcessMessages updates transports too now 2021-06-15 13:52:02 +08:00
vis2k
2ab17571cf MirrorTest: ProcessMessages: switch update order so we can use it in NetworkServerTest.ClientToServerMessage 2021-06-15 13:51:32 +08:00
vis2k
196f4d3f36 NetworkServerTest: remove complicated OnDataReceived test. ClientToServerMessage does the same now. 2021-06-15 13:46:54 +08:00
vis2k
113b8cebaa NetworkServerTest: ClientToServerMessage 2021-06-15 13:46:06 +08:00
vis2k
4db998f9a6 MirrorTest: ConnectClientBlocking helper function 2021-06-15 13:45:57 +08:00
vis2k
41d4b31856 NetworkServerTest: DisconnectAllTest_LocalConnection cleanup 2021-06-15 13:37:17 +08:00
vis2k
0df666382f NetworkServerTest: DisconnectAllTest_RemoteConnection cleanup 2021-06-15 13:36:18 +08:00
vis2k
42de58c9e9 NetworkServerTest: RemoveConnection cleanup 2021-06-15 13:34:55 +08:00
vis2k
86f83da2d9 NetworkServerTests: AddConnection test split into two, and cleaned up 2021-06-15 13:33:23 +08:00
vis2k
ab4c2bceae NetworkServerTest: RemoveLocalConnection cleanup 2021-06-15 13:28:51 +08:00
vis2k
64e8697031 NetworkServerTest: SetLocalConnection split into two tests 2021-06-15 13:27:48 +08:00
vis2k
37c972658e NetwrokServerTests: cleanup OnConnectedOnlyAllowsNonZeroConnectionIds 2021-06-15 13:25:25 +08:00
vis2k
79fee4c93d syntax 2021-06-15 13:23:08 +08:00
vis2k
b3820991a1 syntax 2021-06-15 13:19:31 +08:00
vis2k
26d72ada5d syntax 2021-06-15 13:17:50 +08:00
vis2k
f2f911808f remove unused import 2021-06-15 13:09:40 +08:00
vis2k
ddb00ae2d1 Tests: remove empty TearDowns 2021-06-15 13:08:44 +08:00
vis2k
b1e286d779 RemoteTestBase: remove redundant NetworkClient.Disconnect 2021-06-15 13:07:17 +08:00
vis2k
52ee9408b1 Tests: remove redundant NetworkServer.Shutdowns 2021-06-15 12:50:27 +08:00
vis2k
6e7d71b9d3 MirrorTest: clear NetworkIdentity.spawned in TearDown 2021-06-15 12:48:19 +08:00
vis2k
7a7ea26cc9 MirrorTest: TearDown shuts down NetworkClient/Server too 2021-06-15 12:45:09 +08:00
vis2k
3d535e0c4e LocalConnectionTest : MirrorTest so that transport etc. are available too (prepares for tick batching) 2021-06-15 12:37:33 +08:00
vis2k
0d7edde710 fix NetworkClientTests.Send() test 2021-06-15 12:07:37 +08:00
MrGadget1024
4a03c3034e Fixed typo in comment 2021-06-14 13:26:07 -04:00
MrGadget1024
21a6b64e38 Updated Compiler Symbols MIRROR_41_0_OR_NEWER 2021-06-14 10:01:43 -04:00
Alexander Klaiber
d2ee4979f7
fix: clientAuthority access (#2779)
Provide the same interface access for runtime changes like the NetworkTransform class.
2021-06-14 09:42:59 -04:00
vis2k
7bd65c2d9b syntax 2021-06-14 21:19:43 +08:00
vis2k
bdb410e015 fix: NetworkServer.OnTransportData header size is now checked before every message unpacking again like before batching. 2021-06-14 17:53:41 +08:00
vis2k
e6b379fb8d fix: NetworkClient.OnTransportData header size is now checked before every message unpacking again like before batching. 2021-06-14 17:51:42 +08:00
vis2k
8e8cc71e94 Unbatcher.GetNextMessage: use NetworkReader.Remaining 2021-06-14 17:48:31 +08:00
vis2k
aa71d2a848 NetworkIdentity.OnDeserializeSafely: use NetworkReader.Remaining 2021-06-14 17:48:23 +08:00
vis2k
ccbd6185b4 feature: NetworkReader.Remaining for convenience 2021-06-14 17:46:12 +08:00
vis2k
7c91707d34 Unbatcher: StartReadingBatch helper function to prepare for tick batching 2021-06-14 16:43:14 +08:00
vis2k
2aa8958210 remove unused 2021-06-14 16:34:39 +08:00
vis2k
dcf470b1e9 breaking: remove NetworkClient/NetworkServer.batching properties. Tests still pass. Batching needs to be always on for tick batching. 2021-06-14 15:13:00 +08:00
vis2k
72f915a456 breaking: force enable batching to prepare for TickBatching 2021-06-14 14:54:00 +08:00
vis2k
7eacdaa96b
NetworkConnectionToClient.Disconnect(): remove RemoveFromObservingsObservers because we do that in OnTransportDisconnected now, which is called for both voluntary and involuntary disconnects. (#2760) 2021-06-14 12:11:40 +08:00
vis2k
2c9dd3fc01 add comments 2021-06-13 13:28:09 +08:00
vis2k
a55932ea81 Unbatcher: update icon 2021-06-13 13:05:52 +08:00
vis2k
2c2581fa08 fix: #2778 SpawnObjects SetActive(true) would not initialize NetworkIdentity if the parent is inactive because Unity would not call Awake() 2021-06-13 13:03:49 +08:00
vis2k
6eea1e77f5 fix: #2744 KcpTransport statistics changed to long to avoid int overflows 2021-06-12 18:39:49 +08:00
vis2k
c5e8614101
fix: #2651 scene changing with batching would cause errors because we wouldn't stop the batch processing after a scene message (#2774) 2021-06-12 18:33:46 +08:00
vis2k
9dfc823df6
perf: Client -> Server batching (#2773)
* perf: Client->Server batching to prepare for tickbatching/NT and batching scene change fix

* move to NetworkConnection base class
2021-06-11 12:19:45 +08:00
vis2k
72623ae60b add comment 2021-06-10 21:11:51 +08:00
vis2k
9d7b83e035
The Unbatcher (#2771) 2021-06-10 12:33:45 +08:00
vis2k
53a119d3ab
The Batcher (#2770)
* Batcher & Tests

* NetworkConnectionToClient: use Batcher

* folder

* namespace

* comment

* rename param

* add comment
2021-06-10 12:23:25 +08:00
vis2k
2f5ce11491 NetworkReaderPool: use NetworkReader.SetBuffer 2021-06-09 21:13:30 +08:00
vis2k
854ea1e5a3 NetworkReader.SetBuffer helper function to prepare for batching improvements 2021-06-09 21:13:19 +08:00
vis2k
8089490b51 add TODO 2021-06-09 13:08:27 +08:00
vis2k
a159fe3c41 update comment 2021-06-09 13:06:04 +08:00
vis2k
6e448f22f7 breaking: remove batchInterval to prepare for TickBatching and for the scene change fix 2021-06-09 12:56:09 +08:00
vis2k
24130d6e35 update comments 2021-06-09 12:32:44 +08:00