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