示例#1
0
        public override async Task OnConnectedAsync()
        {
            //manage and track connections here
            if (!SignalRKafkaProxy.AllConsumers.Keys.Contains(Context.ConnectionId))
            {
                Console.WriteLine("Recieved new connection");
                //
                SignalRClient client = extractInformation(Context);
                SignalRKafkaProxy.AddClient(client);

                //Create a connection object
                Consumer <string, string> consumerObj = new Consumer <string, string>(client.ConsumerConfig);
                consumerObj.Subscribe(client.Topic);
                Console.WriteLine($"Adding {consumerObj}");
                SignalRKafkaProxy.AddConsumer(client.ConnectionId, consumerObj);
            }

            await base.OnConnectedAsync();
        }
示例#2
0
        public override async Task OnConnectedAsync()
        {
            //1. Every incoming connection comes with "ConsumerGroupId" and "Topic"
            //2. Create a consumer object for each new connection and cache it in some place(may be in-memory dictionary for now).
            //3. Background services can continually poll these connections and inform connected clients about the new messages.

            if (!SignalRKafkaProxy.AllConsumers.Keys.Contains(Context.ConnectionId))
            {
                Console.WriteLine("Recieved new connection");
                SignalRClient client = extractInformation(Context);
                SignalRKafkaProxy.AddClient(client);

                //Create a connection object
                Consumer <string, string> consumerObj = new Consumer <string, string>(client.ConsumerConfig);
                consumerObj.Subscribe(client.Topic);
                Console.WriteLine($"Adding {consumerObj}");
                SignalRKafkaProxy.AddConsumer(client.ConnectionId, consumerObj);
            }

            await base.OnConnectedAsync();
        }
示例#3
0
 public static void AddClient(SignalRClient client)
 {
     _clients.Add(client);
 }