Compare commits

..

No commits in common. "a4b39f36bbffc2ea81617a0b73e796aff9c4be17" and "276b9920b2c61b73f4b7b6bd07f3131f7bf761f2" have entirely different histories.

13 changed files with 88 additions and 115 deletions

View File

@ -55,7 +55,7 @@ namespace AxiReplay
mRemoteForwardCount = (int)ServerForwardCount; mRemoteForwardCount = (int)ServerForwardCount;
mNetReplayQueue.Enqueue(inputData); mNetReplayQueue.Enqueue(inputData);
#if UNITY_EDITOR #if UNITY_EDITOR
//Debug.Log($"InData=>{inputData.FrameStartID} QCount = >{mNetReplayQueue.Count}"); Debug.Log($"InData=>{inputData.FrameStartID} QCount = >{mNetReplayQueue.Count}");
#endif #endif
mRemoteFrameIdx = inputData.FrameStartID; mRemoteFrameIdx = inputData.FrameStartID;
if (!bNetInit) if (!bNetInit)

View File

@ -1,6 +1,5 @@
using AxibugEmuOnline.Client.Network; using AxibugEmuOnline.Client.Network;
using Google.Protobuf; using Google.Protobuf;
using HaoYueNet.ClientNetwork;
using System; using System;
namespace AxibugEmuOnline.Client.Common namespace AxibugEmuOnline.Client.Common
@ -8,18 +7,6 @@ namespace AxibugEmuOnline.Client.Common
public static class ProtoBufHelper public static class ProtoBufHelper
{ {
private static ProtobufferMsgPool _msgPool = new ProtobufferMsgPool(); private static ProtobufferMsgPool _msgPool = new ProtobufferMsgPool();
public static void RentSerizlizeData(IMessage msg, out byte[] data, out int usedlength)
{
usedlength = msg.CalculateSize();
data = BytesArrayPool.RentBuffer(usedlength);
msg.WriteTo(data.AsSpan(0, usedlength));
}
public static void ReturnSerizlizeData(byte[] data)
{
BytesArrayPool.ReturnBuffer(data);
}
public static byte[] Serizlize(IMessage msg) public static byte[] Serizlize(IMessage msg)
{ {
return msg.ToByteArray(); return msg.ToByteArray();

View File

@ -76,7 +76,7 @@ namespace AxibugEmuOnline.Client
if (IsNetPlay) //skip frame handle if (IsNetPlay) //skip frame handle
{ {
var skipFrameCount = App.roomMgr.netReplay.GetSkipFrameCount(); var skipFrameCount = App.roomMgr.netReplay.GetSkipFrameCount();
//if (skipFrameCount > 0) App.log.Debug($"SKIP FRAME : {skipFrameCount} ,CF:{App.roomMgr.netReplay.mCurrClientFrameIdx},RFIdx:{App.roomMgr.netReplay.mRemoteFrameIdx},RForward:{App.roomMgr.netReplay.mRemoteForwardCount} ,queue:{App.roomMgr.netReplay.mNetReplayQueue.Count}"); if (skipFrameCount > 0) App.log.Debug($"SKIP FRAME : {skipFrameCount} ,CF:{App.roomMgr.netReplay.mCurrClientFrameIdx},RFIdx:{App.roomMgr.netReplay.mRemoteFrameIdx},RForward:{App.roomMgr.netReplay.mRemoteForwardCount} ,queue:{App.roomMgr.netReplay.mNetReplayQueue.Count}");
for (var i = 0; i < skipFrameCount; i++) for (var i = 0; i < skipFrameCount; i++)
{ {
if (!TryPushEmulatorFrame()) break; if (!TryPushEmulatorFrame()) break;

View File

@ -8,7 +8,6 @@ namespace AxibugEmuOnline.Client.Manager
{ {
public class AppChat public class AppChat
{ {
Protobuf_ChatMsg _Protobuf_ChatMsg = new Protobuf_ChatMsg();
public AppChat() public AppChat()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_ChatMsg_RESP>((int)CommandID.CmdChatmsg, RecvChatMsg); NetMsg.Instance.RegNetMsgEvent<Protobuf_ChatMsg_RESP>((int)CommandID.CmdChatmsg, RecvChatMsg);
@ -16,8 +15,11 @@ namespace AxibugEmuOnline.Client.Manager
public void SendChatMsg(string ChatMsg) public void SendChatMsg(string ChatMsg)
{ {
_Protobuf_ChatMsg.ChatMsg = ChatMsg; Protobuf_ChatMsg msg = new Protobuf_ChatMsg()
App.network.SendToServer((int)CommandID.CmdChatmsg, _Protobuf_ChatMsg); {
ChatMsg = ChatMsg,
};
App.network.SendToServer((int)CommandID.CmdChatmsg, ProtoBufHelper.Serizlize(msg));
} }
public void RecvChatMsg(Protobuf_ChatMsg_RESP msg) public void RecvChatMsg(Protobuf_ChatMsg_RESP msg)

View File

@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client.Manager
public class AppLogin public class AppLogin
{ {
static string LastLoginGuid = ""; static string LastLoginGuid = "";
static Protobuf_Login _Protobuf_Login = new Protobuf_Login();
public AppLogin() public AppLogin()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_Login_RESP>((int)CommandID.CmdLogin, RecvLoginMsg); NetMsg.Instance.RegNetMsgEvent<Protobuf_Login_RESP>((int)CommandID.CmdLogin, RecvLoginMsg);
@ -57,11 +57,14 @@ namespace AxibugEmuOnline.Client.Manager
break; break;
} }
_Protobuf_Login.LoginType = LoginType.UseDevice; Protobuf_Login msg = new Protobuf_Login()
_Protobuf_Login.DeviceStr = Initer.dev_UUID; {
_Protobuf_Login.DeviceType = devType; LoginType = LoginType.UseDevice,
DeviceStr = Initer.dev_UUID,
DeviceType = devType,
};
App.network.SendToServer((int)CommandID.CmdLogin, _Protobuf_Login); App.network.SendToServer((int)CommandID.CmdLogin, ProtoBufHelper.Serizlize(msg));
} }
public void RecvLoginMsg(Protobuf_Login_RESP msg) public void RecvLoginMsg(Protobuf_Login_RESP msg)

View File

@ -39,7 +39,6 @@ namespace AxibugEmuOnline.Client.Manager
Protobuf_Room_Player_Ready _Protobuf_Room_Player_Ready = new Protobuf_Room_Player_Ready(); Protobuf_Room_Player_Ready _Protobuf_Room_Player_Ready = new Protobuf_Room_Player_Ready();
Protobuf_Room_SinglePlayerInputData _Protobuf_Room_SinglePlayerInputData = new Protobuf_Room_SinglePlayerInputData(); Protobuf_Room_SinglePlayerInputData _Protobuf_Room_SinglePlayerInputData = new Protobuf_Room_SinglePlayerInputData();
Protobuf_Screnn_Frame _Protobuf_Screnn_Frame = new Protobuf_Screnn_Frame(); Protobuf_Screnn_Frame _Protobuf_Screnn_Frame = new Protobuf_Screnn_Frame();
Protobuf_Room_HostPlayer_UpdateStateRaw _Protobuf_Room_HostPlayer_UpdateStateRaw = new Protobuf_Room_HostPlayer_UpdateStateRaw();
public AppRoom() public AppRoom()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_Room_List_RESP>((int)CommandID.CmdRoomList, RecvGetRoomList); NetMsg.Instance.RegNetMsgEvent<Protobuf_Room_List_RESP>((int)CommandID.CmdRoomList, RecvGetRoomList);
@ -147,7 +146,7 @@ namespace AxibugEmuOnline.Client.Manager
public void SendGetRoomList() public void SendGetRoomList()
{ {
App.log.Info("拉取房间列表"); App.log.Info("拉取房间列表");
App.network.SendToServer((int)CommandID.CmdRoomList, _Protobuf_Room_List); App.network.SendToServer((int)CommandID.CmdRoomList, ProtoBufHelper.Serizlize(_Protobuf_Room_List));
} }
/// <summary> /// <summary>
@ -196,7 +195,7 @@ namespace AxibugEmuOnline.Client.Manager
{ {
_Protobuf_Room_Get_Screen.RoomID = RoomID; _Protobuf_Room_Get_Screen.RoomID = RoomID;
App.log.Info($"获取房间画面快照"); App.log.Info($"获取房间画面快照");
App.network.SendToServer((int)CommandID.CmdRoomGetScreen, _Protobuf_Room_Get_Screen); App.network.SendToServer((int)CommandID.CmdRoomGetScreen, ProtoBufHelper.Serizlize(_Protobuf_Room_Get_Screen));
} }
/// <summary> /// <summary>
/// 获取单个房间画面 /// 获取单个房间画面
@ -221,7 +220,7 @@ namespace AxibugEmuOnline.Client.Manager
_Protobuf_Room_Create.GameRomID = GameRomID; _Protobuf_Room_Create.GameRomID = GameRomID;
_Protobuf_Room_Create.GameRomHash = GameRomHash; _Protobuf_Room_Create.GameRomHash = GameRomHash;
App.log.Info($"创建房间"); App.log.Info($"创建房间");
App.network.SendToServer((int)CommandID.CmdRoomCreate, _Protobuf_Room_Create); App.network.SendToServer((int)CommandID.CmdRoomCreate, ProtoBufHelper.Serizlize(_Protobuf_Room_Create));
} }
/// <summary> /// <summary>
@ -248,7 +247,7 @@ namespace AxibugEmuOnline.Client.Manager
{ {
_Protobuf_Room_Join.RoomID = RoomID; _Protobuf_Room_Join.RoomID = RoomID;
App.log.Info($"加入房间"); App.log.Info($"加入房间");
App.network.SendToServer((int)CommandID.CmdRoomJoin, _Protobuf_Room_Join); App.network.SendToServer((int)CommandID.CmdRoomJoin, ProtoBufHelper.Serizlize(_Protobuf_Room_Join));
} }
/// <summary> /// <summary>
@ -276,7 +275,7 @@ namespace AxibugEmuOnline.Client.Manager
return; return;
_Protobuf_Room_Leave.RoomID = mineRoomMiniInfo.RoomID; _Protobuf_Room_Leave.RoomID = mineRoomMiniInfo.RoomID;
App.log.Info($"LeavnRoom"); App.log.Info($"LeavnRoom");
App.network.SendToServer((int)CommandID.CmdRoomLeave, _Protobuf_Room_Leave); App.network.SendToServer((int)CommandID.CmdRoomLeave, ProtoBufHelper.Serizlize(_Protobuf_Room_Leave));
} }
/// <summary> /// <summary>
@ -439,7 +438,7 @@ namespace AxibugEmuOnline.Client.Manager
} }
App.log.Info($"SendChangePlaySlotIdxWithJoyIdx"); App.log.Info($"SendChangePlaySlotIdxWithJoyIdx");
App.network.SendToServer((int)CommandID.CmdRoomChangePlayerWithJoy, _Protobuf_Room_Change_PlaySlotWithJoy); App.network.SendToServer((int)CommandID.CmdRoomChangePlayerWithJoy, ProtoBufHelper.Serizlize(_Protobuf_Room_Change_PlaySlotWithJoy));
} }
/// <summary> /// <summary>
/// 上报即时存档 /// 上报即时存档
@ -449,10 +448,12 @@ namespace AxibugEmuOnline.Client.Manager
{ {
//压缩 //压缩
byte[] compressRawData = Helper.CompressByteArray(RawData); byte[] compressRawData = Helper.CompressByteArray(RawData);
_Protobuf_Room_HostPlayer_UpdateStateRaw.LoadStateRaw = Google.Protobuf.ByteString.CopyFrom(compressRawData); Protobuf_Room_HostPlayer_UpdateStateRaw msg = new Protobuf_Room_HostPlayer_UpdateStateRaw()
{
LoadStateRaw = Google.Protobuf.ByteString.CopyFrom(compressRawData)
};
App.log.Info($"上报即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}"); App.log.Info($"上报即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}");
App.network.SendToServer((int)CommandID.CmdRoomHostPlayerUpdateStateRaw, _Protobuf_Room_HostPlayer_UpdateStateRaw); App.network.SendToServer((int)CommandID.CmdRoomHostPlayerUpdateStateRaw, ProtoBufHelper.Serizlize(msg));
_Protobuf_Room_HostPlayer_UpdateStateRaw.Reset();
} }
void RecvRoom_WaitStep(Protobuf_Room_WaitStep_RESP msg) void RecvRoom_WaitStep(Protobuf_Room_WaitStep_RESP msg)
@ -490,7 +491,7 @@ namespace AxibugEmuOnline.Client.Manager
_Protobuf_Room_Player_Ready.LoadStateNeedTimeUs = LoadStateNeedTimeUs; _Protobuf_Room_Player_Ready.LoadStateNeedTimeUs = LoadStateNeedTimeUs;
_Protobuf_Room_Player_Ready.VideoFrameShowNeedTimeUs = VideoFrameShowNeedTimeUs; _Protobuf_Room_Player_Ready.VideoFrameShowNeedTimeUs = VideoFrameShowNeedTimeUs;
_Protobuf_Room_Player_Ready.AudioFramePlayNeedTimeUs = AudioFramePlayNeedTimeUs; _Protobuf_Room_Player_Ready.AudioFramePlayNeedTimeUs = AudioFramePlayNeedTimeUs;
App.network.SendToServer((int)CommandID.CmdRoomPlayerReady, _Protobuf_Room_Player_Ready); App.network.SendToServer((int)CommandID.CmdRoomPlayerReady, ProtoBufHelper.Serizlize(_Protobuf_Room_Player_Ready));
} }
/// <summary> /// <summary>
@ -500,7 +501,7 @@ namespace AxibugEmuOnline.Client.Manager
{ {
_Protobuf_Room_SinglePlayerInputData.FrameID = FrameID; _Protobuf_Room_SinglePlayerInputData.FrameID = FrameID;
_Protobuf_Room_SinglePlayerInputData.InputData = InputData; _Protobuf_Room_SinglePlayerInputData.InputData = InputData;
App.network.SendToServer((int)CommandID.CmdRoomSingelPlayerInput, _Protobuf_Room_SinglePlayerInputData); App.network.SendToServer((int)CommandID.CmdRoomSingelPlayerInput, ProtoBufHelper.Serizlize(_Protobuf_Room_SinglePlayerInputData));
} }
ulong TestAllData = 0; ulong TestAllData = 0;
@ -520,8 +521,7 @@ namespace AxibugEmuOnline.Client.Manager
byte[] comData = Helper.CompressByteArray(RenderBuffer); byte[] comData = Helper.CompressByteArray(RenderBuffer);
_Protobuf_Screnn_Frame.FrameID = 0; _Protobuf_Screnn_Frame.FrameID = 0;
_Protobuf_Screnn_Frame.RawBitmap = ByteString.CopyFrom(comData); _Protobuf_Screnn_Frame.RawBitmap = ByteString.CopyFrom(comData);
App.network.SendToServer((int)CommandID.CmdScreen, _Protobuf_Screnn_Frame); App.network.SendToServer((int)CommandID.CmdScreen, ProtoBufHelper.Serizlize(_Protobuf_Screnn_Frame));
_Protobuf_Screnn_Frame.Reset();
} }
public void OnScreen(Protobuf_Screnn_Frame msg) public void OnScreen(Protobuf_Screnn_Frame msg)

View File

@ -9,8 +9,6 @@ namespace AxibugEmuOnline.Client.Manager
{ {
public class AppShare public class AppShare
{ {
static Protobuf_Game_Mark _Protobuf_Game_Mark = new Protobuf_Game_Mark();
static Protobuf_GameScreen_Img_Upload _Protobuf_GameScreen_Img_Upload = new Protobuf_GameScreen_Img_Upload();
public AppShare() public AppShare()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_Game_Mark_RESP>((int)CommandID.CmdGameMark, RecvGameStar); NetMsg.Instance.RegNetMsgEvent<Protobuf_Game_Mark_RESP>((int)CommandID.CmdGameMark, RecvGameStar);
@ -24,10 +22,13 @@ namespace AxibugEmuOnline.Client.Manager
/// <param name="Motion">[0]取消收藏[1]收藏</param> /// <param name="Motion">[0]取消收藏[1]收藏</param>
public void SendGameStar(int RomID, int Motion) public void SendGameStar(int RomID, int Motion)
{ {
_Protobuf_Game_Mark.Motion = Motion; Protobuf_Game_Mark req = new Protobuf_Game_Mark()
_Protobuf_Game_Mark.RomID = RomID; {
Motion = Motion,
RomID = RomID,
};
App.log.Info($"SendGameStar"); App.log.Info($"SendGameStar");
App.network.SendToServer((int)CommandID.CmdGameMark, _Protobuf_Game_Mark); App.network.SendToServer((int)CommandID.CmdGameMark, ProtoBufHelper.Serizlize(req));
} }
/// <summary> /// <summary>
@ -49,14 +50,16 @@ namespace AxibugEmuOnline.Client.Manager
//压缩 //压缩
byte[] compressImgData = Helper.CompressByteArray(SavImgData); byte[] compressImgData = Helper.CompressByteArray(SavImgData);
_Protobuf_GameScreen_Img_Upload.RomID = RomID; Protobuf_GameScreen_Img_Upload req = new Protobuf_GameScreen_Img_Upload()
_Protobuf_GameScreen_Img_Upload.SavImg = Google.Protobuf.ByteString.CopyFrom(compressImgData); {
RomID = RomID,
SavImg = Google.Protobuf.ByteString.CopyFrom(compressImgData),
};
App.log.Info($"SendUpLoadGameScreenCover"); App.log.Info($"SendUpLoadGameScreenCover");
App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}"); App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}");
App.network.SendToServer((int)CommandID.CmdGamescreenImgUpload, _Protobuf_GameScreen_Img_Upload); App.network.SendToServer((int)CommandID.CmdGamescreenImgUpload, ProtoBufHelper.Serizlize(req));
_Protobuf_GameScreen_Img_Upload.Reset();
} }
private void RecvGamescreenImgUpload(Protobuf_GameScreen_Img_Upload_RESP msg) private void RecvGamescreenImgUpload(Protobuf_GameScreen_Img_Upload_RESP msg)

View File

@ -18,10 +18,6 @@ namespace AxibugEmuOnline.Client
public delegate void OnUploadedSavDataHandle(int romID, int slotIndex, Protobuf_Mine_GameSavInfo savInfo); public delegate void OnUploadedSavDataHandle(int romID, int slotIndex, Protobuf_Mine_GameSavInfo savInfo);
public event OnUploadedSavDataHandle OnUploadedSavData; public event OnUploadedSavDataHandle OnUploadedSavData;
static Protobuf_Mine_DelGameSav _Protobuf_Mine_DelGameSav = new Protobuf_Mine_DelGameSav();
static Protobuf_Mine_UpLoadGameSav _Protobuf_Mine_UpLoadGameSav = new Protobuf_Mine_UpLoadGameSav();
static Protobuf_Mine_GetGameSavList _Protobuf_Mine_GetGameSavList = new Protobuf_Mine_GetGameSavList();
public SavCloudApi() public SavCloudApi()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_Mine_GetGameSavList_RESP>((int)CommandID.CmdGamesavGetGameSavList, RecvGetGameSavList); NetMsg.Instance.RegNetMsgEvent<Protobuf_Mine_GetGameSavList_RESP>((int)CommandID.CmdGamesavGetGameSavList, RecvGetGameSavList);
@ -37,9 +33,13 @@ namespace AxibugEmuOnline.Client
public void SendGetGameSavList(int RomID) public void SendGetGameSavList(int RomID)
{ {
if (m_fetchingRomIDs.Contains(RomID)) return; if (m_fetchingRomIDs.Contains(RomID)) return;
_Protobuf_Mine_GetGameSavList.RomID = RomID;
Protobuf_Mine_GetGameSavList req = new Protobuf_Mine_GetGameSavList()
{
RomID = RomID,
};
App.log.Info($"SendGetGameSavList"); App.log.Info($"SendGetGameSavList");
App.network.SendToServer((int)CommandID.CmdGamesavGetGameSavList, _Protobuf_Mine_GetGameSavList); App.network.SendToServer((int)CommandID.CmdGamesavGetGameSavList, ProtoBufHelper.Serizlize(req));
} }
void RecvGetGameSavList(Protobuf_Mine_GetGameSavList_RESP msg) void RecvGetGameSavList(Protobuf_Mine_GetGameSavList_RESP msg)
@ -62,10 +62,13 @@ namespace AxibugEmuOnline.Client
/// <param name="SavDataIdx"></param> /// <param name="SavDataIdx"></param>
public void SendDelGameSavList(int RomID, int SavDataIdx) public void SendDelGameSavList(int RomID, int SavDataIdx)
{ {
_Protobuf_Mine_DelGameSav.RomID = RomID; Protobuf_Mine_DelGameSav req = new Protobuf_Mine_DelGameSav()
_Protobuf_Mine_DelGameSav.SavDataIdx = SavDataIdx; {
RomID = RomID,
SavDataIdx = SavDataIdx
};
App.log.Info($"SendDelGameSavList"); App.log.Info($"SendDelGameSavList");
App.network.SendToServer((int)CommandID.CmdGamesavDelGameSav, _Protobuf_Mine_DelGameSav); App.network.SendToServer((int)CommandID.CmdGamesavDelGameSav, ProtoBufHelper.Serizlize(req));
} }
void RecvDelGameSavList(Protobuf_Mine_DelGameSav_RESP msg) void RecvDelGameSavList(Protobuf_Mine_DelGameSav_RESP msg)
@ -86,18 +89,20 @@ namespace AxibugEmuOnline.Client
//压缩 //压缩
byte[] compressImgData = Helper.CompressByteArray(SavImgData); byte[] compressImgData = Helper.CompressByteArray(SavImgData);
_Protobuf_Mine_UpLoadGameSav.RomID = RomID; Protobuf_Mine_UpLoadGameSav req = new Protobuf_Mine_UpLoadGameSav()
_Protobuf_Mine_UpLoadGameSav.SavDataIdx = SavDataIdx; {
_Protobuf_Mine_UpLoadGameSav.StateRaw = Google.Protobuf.ByteString.CopyFrom(compressRawData); RomID = RomID,
_Protobuf_Mine_UpLoadGameSav.SavImg = Google.Protobuf.ByteString.CopyFrom(compressImgData); SavDataIdx = SavDataIdx,
_Protobuf_Mine_UpLoadGameSav.Sequence = (int)sequence; StateRaw = Google.Protobuf.ByteString.CopyFrom(compressRawData),
SavImg = Google.Protobuf.ByteString.CopyFrom(compressImgData),
Sequence = (int)sequence
};
App.log.Info($"SendDelGameSavList"); App.log.Info($"SendDelGameSavList");
App.log.Info($"上传即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}"); App.log.Info($"上传即时存档数据 原数据大小:{RawData.Length},压缩后;{compressRawData.Length}");
App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}"); App.log.Info($"上传截图 原数据大小:{SavImgData.Length},压缩后;{compressImgData.Length}");
App.network.SendToServer((int)CommandID.CmdGamesavUploadGameSav, _Protobuf_Mine_UpLoadGameSav); App.network.SendToServer((int)CommandID.CmdGamesavUploadGameSav, ProtoBufHelper.Serizlize(req));
_Protobuf_Mine_UpLoadGameSav.Reset();
} }
void RecvUpLoadGameSav(Protobuf_Mine_UpLoadGameSav_RESP msg) void RecvUpLoadGameSav(Protobuf_Mine_UpLoadGameSav_RESP msg)

View File

@ -43,10 +43,6 @@ namespace AxibugEmuOnline.Client.Manager
public string Token => userdata.IsLoggedIn ? userdata.Token : string.Empty; public string Token => userdata.IsLoggedIn ? userdata.Token : string.Empty;
Dictionary<long, UserDataBase> DictUID2User = new Dictionary<long, UserDataBase>(); Dictionary<long, UserDataBase> DictUID2User = new Dictionary<long, UserDataBase>();
public int OnlinePlayerCount => DictUID2User.Count; public int OnlinePlayerCount => DictUID2User.Count;
static Protobuf_UserList _Protobuf_UserList = new Protobuf_UserList();
static Protobuf_Modify_NickName _Protobuf_Modify_NickName = new Protobuf_Modify_NickName();
public void InitMainUserData(string UName, long UID, string token) public void InitMainUserData(string UName, long UID, string token)
{ {
userdata.NickName = UName; userdata.NickName = UName;
@ -151,7 +147,10 @@ namespace AxibugEmuOnline.Client.Manager
/// </summary> /// </summary>
public void Send_GetUserList() public void Send_GetUserList()
{ {
App.network.SendToServer((int)CommandID.CmdUserOnlinelist, _Protobuf_UserList); Protobuf_UserList msg = new Protobuf_UserList()
{
};
App.network.SendToServer((int)CommandID.CmdUserOnlinelist, ProtoBufHelper.Serizlize(msg));
} }
public void RecvUserOnlinelist(Protobuf_UserList_RESP msg) public void RecvUserOnlinelist(Protobuf_UserList_RESP msg)
@ -180,14 +179,18 @@ namespace AxibugEmuOnline.Client.Manager
{ {
RemoveUser(msg.UID); RemoveUser(msg.UID);
} }
/// <summary> /// <summary>
/// 发送修改昵称请求 /// 发送修改昵称请求
/// </summary> /// </summary>
/// <param name="NickName"></param> /// <param name="NickName"></param>
public void Send_ModifyNickName(string NickName) public void Send_ModifyNickName(string NickName)
{ {
_Protobuf_Modify_NickName.NickName = NickName; Protobuf_Modify_NickName msg = new Protobuf_Modify_NickName()
App.network.SendToServer((int)CommandID.CmdModifyNickName, _Protobuf_Modify_NickName); {
NickName = NickName
};
App.network.SendToServer((int)CommandID.CmdModifyNickName, ProtoBufHelper.Serizlize(msg));
} }
void RecvModifyNickName(Protobuf_Modify_NickName_RESP msg) void RecvModifyNickName(Protobuf_Modify_NickName_RESP msg)
@ -209,5 +212,6 @@ namespace AxibugEmuOnline.Client.Manager
App.roomMgr.ChangeCurrRoomPlayerName(msg.UID); App.roomMgr.ChangeCurrRoomPlayerName(msg.UID);
Eventer.Instance.PostEvent(EEvent.OnOtherUserInfoUpdate, msg.UID); Eventer.Instance.PostEvent(EEvent.OnOtherUserInfoUpdate, msg.UID);
} }
} }
} }

View File

@ -24,9 +24,6 @@ namespace AxibugEmuOnline.Client
public double MaxNetDelay; public double MaxNetDelay;
public List<double> NetDelays = new List<double>(); public List<double> NetDelays = new List<double>();
public const int NetAveDelayCount = 3; public const int NetAveDelayCount = 3;
static Protobuf_Ping _Protobuf_Ping = new Protobuf_Ping();
static Protobuf_Pong _Protobuf_Pong = new Protobuf_Pong();
private void Awake() private void Awake()
{ {
NetMsg.Instance.RegNetMsgEvent<Protobuf_Ping>((int)CommandID.CmdPing, OnCmdPing); NetMsg.Instance.RegNetMsgEvent<Protobuf_Ping>((int)CommandID.CmdPing, OnCmdPing);
@ -92,14 +89,22 @@ namespace AxibugEmuOnline.Client
int randSeed = new System.Random().Next(0, int.MaxValue); int randSeed = new System.Random().Next(0, int.MaxValue);
LastPingSeed = randSeed; LastPingSeed = randSeed;
LastStartPingTime = App.tick.sw.Elapsed; LastStartPingTime = App.tick.sw.Elapsed;
_Protobuf_Ping.Seed = randSeed; Protobuf_Ping resp = new Protobuf_Ping()
App.network.SendToServer((int)CommandID.CmdPing, _Protobuf_Ping); {
Seed = randSeed,
};
App.network.SendToServer((int)CommandID.CmdPing, ProtoBufHelper.Serizlize(resp));
} }
public void OnCmdPing(Protobuf_Ping msg) public void OnCmdPing(Protobuf_Ping msg)
{ {
//App.log.Debug($"OnCmdPing"); //App.log.Debug($"OnCmdPing");
_Protobuf_Pong.Seed = msg.Seed; Protobuf_Pong resp = new Protobuf_Pong()
App.network.SendToServer((int)CommandID.CmdPong, _Protobuf_Pong); {
Seed = msg.Seed,
};
App.network.SendToServer((int)CommandID.CmdPong, ProtoBufHelper.Serizlize(resp));
} }
public void OnCmdPong(Protobuf_Pong msg) public void OnCmdPong(Protobuf_Pong msg)

View File

@ -3,6 +3,7 @@ using AxibugProtobuf;
using Google.Protobuf; using Google.Protobuf;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using AxibugEmuOnline.Client.Common; using AxibugEmuOnline.Client.Common;
namespace AxibugEmuOnline.Client.Network namespace AxibugEmuOnline.Client.Network
@ -188,10 +189,6 @@ namespace AxibugEmuOnline.Client.Network
App.log.Error("错误:" + errMsg); App.log.Error("错误:" + errMsg);
} }
#if UNITY_EDITOR
//if (cmd > (int)CommandID.CmdPong)
//App.log.Info("[NET]<color=yellow>" + cmd + "|" + (CommandID)cmd + "| ERRCODE:" + ERRCODE + "| length:" + arg.Length + "</color>");
#endif
if (err > ErrorCode.ErrorOk) if (err > ErrorCode.ErrorOk)
return; return;

View File

@ -1,8 +1,6 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.Event;
using AxibugProtobuf; using AxibugProtobuf;
using Google.Protobuf;
using HaoYueNet.ClientNetwork; using HaoYueNet.ClientNetwork;
using System; using System;
using System.Net.Sockets; using System.Net.Sockets;
@ -90,6 +88,7 @@ namespace AxibugEmuOnline.Client.Network
/// <param name="data">业务数据</param> /// <param name="data">业务数据</param>
void GetDataCallBack(int CMDID, int ERRCODE, byte[] data) void GetDataCallBack(int CMDID, int ERRCODE, byte[] data)
{ {
//NetworkDeBugLog("收到消息 CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " 数据长度=>" + data.Length);
try try
{ {
//抛出网络数据 //抛出网络数据
@ -165,37 +164,5 @@ namespace AxibugEmuOnline.Client.Network
return false; return false;
return socket.Connected; return socket.Connected;
} }
public void SendToServer(int CmdID, IMessage msg)
{
//SendToServer(CmdID, ProtoBufHelper.Serizlize(msg));
//return;
// byte[] data2 = ProtoBufHelper.Serizlize(msg);
// base.SendToServerWithLength(CmdID, ref data2, data2.Length);
//#if UNITY_EDITOR
// if (CmdID > (int)CommandID.CmdPong)
// NetworkDeBugLog("[NET]<color=cyan>" + CmdID + "|" + (CommandID)CmdID + "| alllen:" + data2.Length + " usedlength:" + data2 + "</color>");
//#endif
// return;
ProtoBufHelper.RentSerizlizeData(msg, out byte[] data, out int usedlength);
base.SendToServerWithLength(CmdID, ref data, usedlength);
#if UNITY_EDITOR
//if (CmdID > (int)CommandID.CmdPong)
//NetworkDeBugLog("[NET]<color=cyan>" + CmdID + "|" + (CommandID)CmdID + "| alllen:"+ data.Length + " usedlength:" + usedlength + "</color>");
#endif
ProtoBufHelper.ReturnSerizlizeData(data);
}
public new void SendToServer(int CmdID, byte[] data)
{
#if UNITY_EDITOR
//if(CmdID > (int)CommandID.CmdPong)
//NetworkDeBugLog("[NET]<color=cyan>" + CmdID + "|" + (CommandID)CmdID + "| length:" + data.Length + "</color>");
#endif
base.SendToServer(CmdID, data);
}
} }
} }