mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 03:14:47 +00:00
50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
|
|
using System.Threading.Tasks;
|
|
using AppGame;
|
|
using AppGame.Sync;
|
|
using Cysharp.Threading.Tasks;
|
|
using Plugins.JNGame.Network;
|
|
using Plugins.JNGame.Network.Action;
|
|
|
|
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<string> GetUrl()
|
|
{
|
|
await UniTask.NextFrame();
|
|
return "ws://127.0.0.1:8080/websocket";
|
|
}
|
|
|
|
/// <summary>
|
|
/// 有客户端断开服务器连接
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
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);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 有新的Tile服务器
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
private void OnNAddTileServer(byte[] obj)
|
|
{
|
|
App.Event.Dispatch(GEvent.NetNewTileServer);
|
|
}
|
|
} |