コード例 #1
0
        private Task DispatchPacket(LoginDisconnect packet)
        {
            var requestGrain = _sessionScope.ServiceProvider.Resolve <ILoginHandler>();

            requestGrain.OnDisconnect(packet);
            return(Task.CompletedTask);
        }
コード例 #2
0
        private object DeserializeLoginPacket(UncompressedPacket packet)
        {
            var    br = new SpanReader(packet.Data);
            object innerPacket;

            switch (packet.PacketId)
            {
            // Disconnect
            case 0x00:
                innerPacket = LoginDisconnect.Deserialize(ref br);
                break;

            // Login Success
            case 0x02:
                innerPacket = LoginSuccess.Deserialize(ref br);
                break;

            default:
                throw new InvalidDataException($"Unrecognizable packet id: 0x{packet.PacketId:X2}.");
            }

            if (!br.IsCosumed)
            {
                throw new InvalidDataException($"Packet data is not fully consumed.");
            }
            return(innerPacket);
        }
コード例 #3
0
 void ILoginHandler.OnDisconnect(LoginDisconnect disconnect)
 {
     if (_pendingLogins.TryDequeue(out var tcs))
     {
         tcs.SetResult(new LoginStartDisconnectResponse
         {
             Reason = disconnect.Reason
         });
     }
 }
コード例 #4
0
 public void OnLoginDisconnect(LoginDisconnect packet)
 {
 }
コード例 #5
0
 private void InvokeLoginDisconnect(LoginDisconnect packet)
 {
     packetListener.OnLoginDisconnect(packet);
 }