public USocket NewSocket(SocketListner listener, Protocal protocal) { ShortUSocket socket = null; if (_lstPool.Count == 0) { socket = new ShortUSocket(listener, protocal); socket.ID = _nIDIndex++; Debug.Log("<color=cyan>" + "创建" + socket.ID + "号Socket" + "</color>"); } else { socket = _lstPool.Dequeue(); socket.setLister(listener); socket.setProtocal(protocal); Debug.Log("<color=cyan>" + "直接使用" + socket.ID + "号Socket" + "</color>"); } socket.IsInPool = false; socket._actionClose = OnShortSocketClose; return(socket); }
void OnShortSocketClose(ShortUSocket socket) { Debug.Log("<color=cyan>" + socket.ID + "关闭了,入池 ~~" + "</color>"); socket.IsInPool = true; _lstPool.Enqueue(socket); }