Kafka.SignalR 1.0.0

dotnet add package Kafka.SignalR --version 1.0.0                
NuGet\Install-Package Kafka.SignalR -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Kafka.SignalR" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Kafka.SignalR --version 1.0.0                
#r "nuget: Kafka.SignalR, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Kafka.SignalR as a Cake Addin
#addin nuget:?package=Kafka.SignalR&version=1.0.0

// Install Kafka.SignalR as a Cake Tool
#tool nuget:?package=Kafka.SignalR&version=1.0.0                

Kafka.SignalR

Real-time Kafka Message Delivery to Frontend Using SignalR

Nuget Nuget

Overview

In this guide, we will demonstrate how to set up a Kafka.SingalR in your application and deliver Kafka messages directly to your frontend client using SignalR. This approach enables real-time updates and seamless communication between your backend and frontend.

Feature

  • Connect Kafka as a Consumer: Establish a connection to Kafka and consume messages from one or more topics.
  • Deliver Kafka Messages Directly to UI Client: Use SignalR to push Kafka messages to the frontend in real-time.
  • Support for Multiple Kafka Topics: Easily connect and consume messages from multiple Kafka topics.

Usage

  1. Install the Kafka.SignalR NuGet package.
  • .NET CLI
  dotnet add package Kafka.SignalR --version 1.0.0
  • PackageManager
Install-Package Kafka.SignalR -Version 1.0.0
  1. In ConfigureServices in Startup.cs, configure with .AddKafkaSignalR(Configuration.GetSection("Kafka")):
  2. In Configure in Startup.cs, configure with endpoints.MapHub<KafkaSignalRHub>(Configuration["Kafka:Hub"])

Configuration

Simple configuration:

services.AddKafkaSignalR(Configuration.GetSection("Kafka"))
 app.UseEndpoints(endpoints =>
            {
                endpoints
                .MapHub<KafkaSignalRHub>(Configuration["Kafka:Hub"])
                endpoints
                .MapGet("/", async context => { 
                    await context.Response.WriteAsync("Running Kafka Service...."); 
                });
            });

Simple appsettings.json

"Kafka": {
    "Hub": "kafka/hubService",
    "Topics": "MyTopic",
    "GroupId": "myFirstApp",
    "BootstrapServers": "localhost:9092",
    "SecurityProtocol": "PlainText", //Ssl or PlainText
    "EnableAutoCommit": "true",
    "AutoCommitIntervalMs": "600000",
    //If Ssl than configure below
    "SslCaLocation": "",
    "SslCertificateLocation": "",
    "SslKeyLocation": ""
  },

SignalR Client

const connection = new signalR.HubConnectionBuilder().withUrl("https://localhost:44363/kafka/hubService").build();

connection.on("RelayMessage", function (topicName,message) {
    // your code 
  
  });

  connection.start().then(function () {
   
   //subscribe to kafka topics
    connection.invoke("Subscribe", "MyTopic");
    connection.invoke("Subscribe", "MyTopic1");
}).catch(function (err) {
    return console.error(err.toString());
});
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 6,356 7/26/2023