2023-04-03 11:04:31 +08:00

63 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
namespace BF
{
public class SocketManager : ManagerBase
{
static SocketManager instance;
private SocketChannelManager socketChannelManager;
private readonly bool isLittleEndian;
private SocketManager()
{
isLittleEndian = BitConverter.IsLittleEndian;
}
public static SocketManager Create()
{
BFLog.LogAssert(instance == null, "This method only allows BFMain to call once");
instance = new SocketManager();
instance.Init();
return instance;
}
public override void Init()
{
socketChannelManager = new SocketChannelManager();
}
public override void Update()
{
socketChannelManager.Update(Time.time, Time.realtimeSinceStartup);
}
public ISocketChannel TryGetSocketClient(string channelName)
{
return socketChannelManager.TryGetSocketChannel(channelName);
}
public void CreateSocketClient(string channelName, Action<ISocketChannel> callback)
{
var sch = new SocketChannelHelper(isLittleEndian);
socketChannelManager.CreateSocketChannel(channelName, sch, callback);
}
public bool DestroySocketChannel(string channelName)
{
return socketChannelManager.DestroySocketChannel(channelName);
}
public void Shutdown()
{
}
public override void Destroy()
{
socketChannelManager.Shutdown();
socketChannelManager = null;
}
}
}