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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|