63 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|