예제 #1
0
        public static void listenToChannel(int id, string channelName, MessageReaderDelegate callback)
        {
            if (channelName == null || channelName.Length <= 1)
            {
                Logs.warningOnChannel("Communication", "Listening to invalid channel", channelName);
            }
            Channel channel = null;

            lock (channelsByName)
            {
                if (!channelsByName.ContainsKey(channelName))
                {
                    channelsByName[channelName] = new Channel(channelName);
                }
                channel = channelsByName[channelName];
            }
            channel.add(id, callback);
            lock (channelsBySub)
            {
                if (!channelsBySub.ContainsKey(id))
                {
                    channelsBySub[id] = new List <Channel>();
                }
                channelsBySub[id].Add(channel);
            }
        }
예제 #2
0
 public void add(int id, MessageReaderDelegate callback)
 {
     lock (messengers)
     {
         if (!messengers.ContainsKey(id))
         {
             messengers[id] = new List <MessageReaderDelegate>();
         }
         messengers[id].Add(callback);
         history.subscribes += 1;
     }
 }