c# - 带有 ASP.Net Core 的 Azure SignalR 无服务器
问题描述
我需要在无服务器模式下将 ASP.Net Core 与 SignalR 连接起来。我找不到任何关于如何做到这一点的好例子(仅适用于默认模式),如果它甚至可能?
我们确实有 Azure 功能,可以很好地与无服务器 SignalR 配合使用。但现在我们需要连接到另一个运行 ASP.Net Core 的 Web 服务器。我们该怎么做?那么 Azure 函数和 ASP.Net Core 服务器共享同一个 SignalR 服务?
解决方案
这是连接到 SignalR 的示例(将“localhost”替换为您的 Azure SignalR 地址)
class Program
{
static async Task Main(string[] args)
{
await Task.Delay(3000);
var sender1 = SenderClient1("john");
var sender2 = SenderClient1("papa");
var sender3 = SenderClient1("marry");
await Task.WhenAll(sender1, sender2, sender3);
Console.ReadKey();
}
static async Task SenderClient1(string nomeUsuario)
{
var connection = new HubConnectionBuilder()
.WithUrl("http://localhost:5005/sockethub", options =>
{
options.Headers["Application"] = "API Sender";
})
.WithAutomaticReconnect()
.Build();
await connection.StartAsync();
await connection.SendAsync("UpdateClient", nomeUsuario);
Console.WriteLine("Connection started.");
connection.Closed += async (error) =>
{
await Task.Delay(new Random().Next(0, 5) * 1000);
await connection.StartAsync();
};
while (true)
{
Thread.Sleep(400);
await connection.SendAsync($"SendNotification", $"{nomeUsuario} - {DateTime.Now:G}");
Console.WriteLine($"Send Message: {nomeUsuario} - {DateTime.Now:G}");
}
}
}
可以在此处找到更多详细信息和完整解决方案的示例:https ://github.com/hgmauri/signalr-socket-dotnet5
推荐阅读
- python - QtPython,功能失调的按钮单击信号
- facebook - 使用 SSL 的离子服务
- javascript - 如何按第二个数组中的相同位置对 JavaScript 数组项进行排序?
- reactjs - 如何使用 Jest 或测试库测试上下文文件
- .net - OpenXmlSDK create xlsx ClosedXml 无法读取,但NPOI,Epplus 可以读取,并显示消息`指定的包无效。主要部分不见了。
- c# - SQL Server 服务意外停止事件 ID 17310 和 17311
- .net - .NET 中的字节范围文件锁定(4.5、4.7、4.7.2、4.8)
- dotvvm - dotvvm:System.IO.FileLoadException:已加载同名程序集
- node.js - 测试通过,但显示两条错误消息“错误:连接 ECONNREFUSED 127.0.0.1:80”和“在 Socket 实例上发出 'error' 事件”
- c++ - 在 C++/CLI 中结合泛型和模板