private void ProcessUdpTransferFrame(UdpTransferFrame frame) { this.UpdateKeepAlive(); switch (frame.Type) { case FrameType.ClientPing: this.log.Debug($"[Client:{this.state.ClientId} => Server] PING"); var cmdClientPing = new ClientPingMessage(frame.MessageBuffer); var now = TimeSpan.FromTicks(DateTime.UtcNow.Ticks); var msgServerPong = new ServerPongMessage() { ClientRequestTimestamp = cmdClientPing.ClientTimestamp, ClientResponseTimestamp = now, ServerTimestamp = now }; this.SendFrameToClient(FrameType.ServerPong, msgServerPong.Serialize()); break; case FrameType.ClientPong: this.log.Debug($"[Client:{this.state.ClientId} => Server] PONG"); var msgClientPong = new ClientPongMessage(frame.MessageBuffer); this.CalculateClientLatency(msgClientPong); break; case FrameType.Message: this.reliableClientMessaging.ProcessMessageFrame(frame); break; } }
public void ActorMustNotAcceptMessagesWithoutAuthentication() { //setup var shardRegionObjectProbe = CreateTestProbe(); var replyToProbe = CreateTestProbe(); var testeeRef = Sys.ActorOf(Props.Create(() => new ClientTwinActor(defaultSocketProbe, defaultAuthenticationProbe, defaultEndpoint, shardRegionObjectProbe, defaultObjectRegionArea))); var clientPingMessage = new ClientPingMessage(); //execute testeeRef.Tell(new UdpTransferFrame(FrameType.ClientPing, clientPingMessage.Serialize())); //verify shardRegionObjectProbe.ExpectNoMsg(); }