Sidub.Platform.Messaging.SignalR.Host 1.15.1

Prefix Reserved
dotnet add package Sidub.Platform.Messaging.SignalR.Host --version 1.15.1
                    
NuGet\Install-Package Sidub.Platform.Messaging.SignalR.Host -Version 1.15.1
                    
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="Sidub.Platform.Messaging.SignalR.Host" Version="1.15.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sidub.Platform.Messaging.SignalR.Host" Version="1.15.1" />
                    
Directory.Packages.props
<PackageReference Include="Sidub.Platform.Messaging.SignalR.Host" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sidub.Platform.Messaging.SignalR.Host --version 1.15.1
                    
#r "nuget: Sidub.Platform.Messaging.SignalR.Host, 1.15.1"
                    
#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.
#:package Sidub.Platform.Messaging.SignalR.Host@1.15.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sidub.Platform.Messaging.SignalR.Host&version=1.15.1
                    
Install as a Cake Addin
#tool nuget:?package=Sidub.Platform.Messaging.SignalR.Host&version=1.15.1
                    
Install as a Cake Tool

Sidub Platform — Messaging SignalR Hub for Azure Functions

The serverless SignalR hub behind Sidub.Platform.Messaging.SignalR, for an Azure Functions isolated worker (.NET 8 or later) with Azure SignalR Service in serverless mode: negotiate for authenticated callers, channel groups scoped by a claim of the caller's token, and server-side publish to a group through the Azure SignalR Management SDK.

Installation

dotnet add package Sidub.Platform.Messaging.SignalR.Host

Quick Start

// Program.cs (worker)
builder.AddSidubAuthenticationForIsolatedFunction();
builder.Services.AddSidubPlatform(_ => registry);               // the channel registry first: a registry added after AddSidubMessagingHub is ignored
builder.Services.AddSidubMessagingHub(o => o.GroupClaim = "tid");
builder.Services.AddServerlessHub<Messaging>();

// the hub: the class name is the hub name
[ServerlessHub.SignalRConnection("AzureSignalRConnectionString")]
public sealed class Messaging : MessagingHub
{
    public Messaging(IServiceProvider sp, IOptions<MessagingHubOptions> o, ILogger<MessagingHub> l) : base(sp, o, l) { }

    [Function("negotiate")]
    public Task<HttpResponseData> NegotiateFunction([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, FunctionContext ctx) => Negotiate(req, ctx);

    [Function("subscribe"), AllowAnonymous]
    public Task Subscribe([SignalRTrigger("messaging", "messages", "subscribe", "channel")] SignalRInvocationContext inv, string channel) => OnSubscribe(inv, channel);

    [Function("unsubscribe"), AllowAnonymous]
    public Task Unsubscribe([SignalRTrigger("messaging", "messages", "unsubscribe", "channel")] SignalRInvocationContext inv, string channel) => OnUnsubscribe(inv, channel);

    [Function("publish"), AllowAnonymous]
    public Task Publish([SignalRTrigger("messaging", "messages", "publish", "envelope")] SignalRInvocationContext inv, string envelope) => OnPublish(inv, envelope);
}

Registration fails unless GroupClaim is set, or AllowUnscopedChannels = true for a hub where every client shares every channel. Clients publish through the hub only with AllowClientPublish = true; the hub then stamps each client message with the client's user id.

Point the SignalR Service upstream at https://<app>.azurewebsites.net/runtime/webhooks/signalr?code=<signalr_extension system key>.

Documentation

Full documentation, guides, and API reference: Sidub Platform Documentation

License

Dual-licensed under AGPLv3 and Sidub Inc. Proprietary Software License Agreement (PSLA). See LICENSE.txt for details.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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.15.1 3 11/1/2026