private Task DispatchPacket(LoginDisconnect packet) { var requestGrain = _sessionScope.ServiceProvider.Resolve <ILoginHandler>(); requestGrain.OnDisconnect(packet); return(Task.CompletedTask); }
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); }
void ILoginHandler.OnDisconnect(LoginDisconnect disconnect) { if (_pendingLogins.TryDequeue(out var tcs)) { tcs.SetResult(new LoginStartDisconnectResponse { Reason = disconnect.Reason }); } }
public void OnLoginDisconnect(LoginDisconnect packet) { }
private void InvokeLoginDisconnect(LoginDisconnect packet) { packetListener.OnLoginDisconnect(packet); }