using System.Threading.Tasks; using AppGame; using AppGame.Sync; using Cysharp.Threading.Tasks; using JNGame.Network; using JNGame.Network.Action; using Samples.AppGame; public class JNGSocket : JNSocket { public override async Task OnInit() { AddListener((int)NActionEnum.ServerClientDisconnect,OnServerClientDisconnect); AddListener((int)NActionEnum.NAddTileServer,OnNAddTileServer); await base.OnInit(); } protected override async UniTask GetUrl() { await UniTask.NextFrame(); return "ws://127.0.0.1:8080/websocket"; } /// /// 有客户端断开服务器连接 /// /// private void OnServerClientDisconnect(byte[] data) { var disconnect = JNClientDisconnect.Parser.ParseFrom(data); //断开Tile服务器连接 (App.Game.Client as JNGTileClientSystem)?.RemoveSocket(disconnect.ClientId); (App.Game.Server as JNGTileServerSystem)?.RemoveSocket(disconnect.ClientId); (App.Game.Server as JNGTileSlaveServerSystem)?.RemoveSocket(disconnect.ClientId); } /// /// 有新的Tile服务器 /// /// private void OnNAddTileServer(byte[] obj) { App.Event.Dispatch(GEvent.NetNewTileServer); } }