private void OnSocketClienMessageReceived196(SocketClient client, ServiceDesc desc) { var newClientId = desc.ClientId; var oldClientId = desc.Routing[0]; var sceneIndex = (int)desc.Routing[1]; //Logger.Fatal("Gate Re Connect ------ 1---{0} -- {1}", DateTime.Now.ToBinary(), oldClientId); CharacterInfoEx characterInfo; ServerClient serverClient; if (mFromClientId2Client.TryRemove(newClientId, out serverClient)) { //serverClient.UserData; mFromClientId2Client.AddOrUpdate(oldClientId, serverClient, (arg1, arg2) => serverClient); characterInfo = serverClient.UserData as CharacterInfoEx; if (characterInfo == null) { return; } characterInfo.ClientId = oldClientId; characterInfo.mState = GateClientState.GamePlay; characterInfo.CharacterId = desc.CharacterId; var server = GetSocketClientByServiceTypeAndIndex(ServiceType.Scene, sceneIndex); characterInfo.Servers[(int)ServiceType.Scene] = server; var descReply = new ServiceDesc(); descReply.FuncId = 2035; descReply.ServiceType = (int)ServiceType.Login; descReply.Type = (int)MessageType.SC; using (var ms = new MemoryStream()) { var ret = new __RPC_Login_NotifyReConnet_ARG_int32_result__(); ret.Result = 0; Serializer.Serialize(ms, ret); descReply.Data = ms.ToArray(); } serverClient.SendMessage(descReply); } else { Logger.Warn("Client {0} is not connected. ", newClientId); } }
public NotifyReConnetOutMessage(IAgentBase sender, int result) : base(sender, ServiceType.Login, 2035) { Request = new __RPC_Login_NotifyReConnet_ARG_int32_result__(); Request.Result = result; }