/// <summary> /// TCPにてデータを送信する /// </summary> /// <param name="ClientMethodName"></param> /// <param name="data"></param> public void BroadCastNoReturn(string ClientMethodName, byte[] data, List <Group> GroupLists = null) { if (data != null && data.Length > SocketySetting.MAX_BUFFER) { throw new SocketyException(SocketyException.SOCKETY_EXCEPTION_ERROR.BUFFER_OVER); } List <ClientHub <T> > DisConnction = new List <ClientHub <T> >(); List <ClientHub <T> > SendLists; lock (SocketClient <T> .GetInstance().ClientHubs) { if (GroupLists == null) { SendLists = SocketClient <T> .GetInstance().ClientHubs; } else { SendLists = new List <ClientHub <T> >(); lock (SocketClient <T> .GetInstance().ClientHubs) { ///送信先をグループで検索しリストを作成 SocketClient <T> .GetInstance().ClientHubs.ForEach(x => { foreach (var g in GroupLists) { if (x.ClientInfo.JoinGroups.Contains(g) == true) { if (SendLists.Contains(x) == false) { SendLists.Add(x); break; } } } }); } } SendLists.ForEach(async(x) => { try { x.SendNonReturn(ClientMethodName, data); } catch (IOException) { } }); } }
/// <summary> /// UDPにてデータを送信する /// </summary> /// <param name="data"></param> public void BroadCastUDPNoReturn(ClientInfo clientInfo, byte[] data, List <Group> GroupLists = null) { if (data != null && data.Length > SocketySetting.MAX_UDP_SIZE) { throw new SocketyException(SocketyException.SOCKETY_EXCEPTION_ERROR.BUFFER_OVER); } var packet = new SocketyPacketUDP { MethodName = "Udp", clientInfo = clientInfo, PacketID = Guid.NewGuid(), PacketNo = 1, PackData = data, PacketType = SocketyPacketUDP.PACKET_TYPE.DATA }; List <ClientHub <T> > SendLists; lock (SocketClient <T> .GetInstance().ClientHubs) { if (GroupLists == null) { SendLists = SocketClient <T> .GetInstance().ClientHubs; } else { SendLists = new List <ClientHub <T> >(); ///送信先をグループで検索しリストを作成 SocketClient <T> .GetInstance().ClientHubs.ForEach(x => { foreach (var g in GroupLists) { if (x.ClientInfo.JoinGroups.Contains(g) == true) { if (SendLists.Contains(x) == false) { SendLists.Add(x); break; } } } }); } SendLists.ForEach(x => { x.SendUdp(packet); }); } }