60 lines
1.4 KiB
C#
Raw Normal View History

2024-08-17 14:27:18 +08:00
using System.Net;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
2024-08-19 11:51:17 +08:00
using JNGame.Network;
2024-08-17 14:27:18 +08:00
using Plugins.JNGame.Network;
using Plugins.JNGame.Network.Action;
namespace AppGame.Systems
{
public class JNGClient : JNTCPClient
{
2024-08-19 11:51:17 +08:00
private string _point;
private int _clientId;
public int ClientId => _clientId;
2024-08-17 14:27:18 +08:00
2024-08-19 11:51:17 +08:00
public void BindID(int clientId)
{
_clientId = clientId;
}
public void SetPoint(string point)
2024-08-17 14:27:18 +08:00
{
_point = point;
}
2024-08-19 11:51:17 +08:00
protected override async UniTask<string> GetEndPoint()
2024-08-17 14:27:18 +08:00
{
await UniTask.NextFrame();
return _point;
}
public override async Task OnInit()
{
//监听服务端事件
AddListener((int)NActionEnum.NSyncStateDataUpdate,OnNSyncStateDataUpdate);
2024-08-19 11:51:17 +08:00
AddListener((int)NActionEnum.ClientConnect,OnClientConnect);
2024-08-17 14:27:18 +08:00
//连接
await base.OnInit();
}
2024-08-19 11:51:17 +08:00
private void OnClientConnect(byte[] obj)
{
//向服务器发送玩家Id
Send((int)GActionEnum.BindClientID,new RClientIDMessage()
{
ClientId = ClientId
});
}
2024-08-17 14:27:18 +08:00
private void OnNSyncStateDataUpdate(byte[] data)
{
var info = JNStateItemData.Parser.ParseFrom(data);
App.Game.AddState(info);
}
}
}