我正在尝试构建自托管SignalR的Windows服务.我已经阅读了SignalR Self-Host on ASP.Net等教程我注意到,至少在看来,它们基于广播消息,似乎在收听周围找不到任何东西.我需要收听服务内的消息以及广播.我们已经有了...

我正在尝试构建自托管SignalR的Windows服务.
我已经阅读了SignalR Self-Host on ASP.Net等教程
我注意到,至少在看来,它们基于广播消息,似乎在收听周围找不到任何东西.
我需要收听服务内的消息以及广播.
我们已经有了背板设置-该站点使用了相同的设置.
在网站上,我可以通过Javascript加入一个小组.如何加入自托管SignalR服务中的群组.
在一个网站上,我在集线器上注册了一个回调.如何在自助服务中注册相同的回调?
我为注册和启动SignalR而准备的一些示例代码是:
GlobalHost.DependencyResolver.UseSqlServer(Settings.Default.ISDBContext);
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
HubConfiguration hubConfig = new HubConfiguration()
{
EnableDetailedErrors = true,
EnableJSONP = true,
};
map.RunSignalR(hubConfig);
});
然后,我像这样启动我的webApp:
SignalR = WebApp.Start< Startup>(选项);
选项是我正在注册的网址. Startup是包含上面的signalR映射的启动类.
我之前没有建立过自托管服务,因此在这里几乎没有什么损失
解决方法:
总的来说,SignalR提供了一个实时消息传递环境,它的优点是可以将消息推送给客户端,而无需他们请求更新(您已经阅读了介绍,因此足够了).无论您是从服务内部启动自我托管,都无济于事.
根据您对方案的了解,您需要使用自托管服务中的消息.我认为您可能只需要SignalR Desktop Client的提示.我认为您的应用程序/服务应该从服务开始,然后充当服务本身的客户端.这将是最干净的方法.
作为javascript客户端,它充当具有相同功能的服务的使用者:
HubConnection conn = new HubConnection("http://192.168.1.1:8080");
IHubProxy hub = conn.CreateHubProxy("ChatHub");
// call from hub to client
hub.On<string, string>("addMessage", (name, message) =>
{
// Handle incoming data update
});
从桌面客户端到集线器,反之亦然:
await hub.Invoke<string, string>("Send", name, message);
要使用组,需要在集线器中定义逻辑.文档Working with groups提供了可理解的概述.
本文标题为:C#-SignalR自托管Windows服务,侦听消息


基础教程推荐
- C#调用SQL Server中有参数的存储过程 2023-05-25
- Unity3D自定义创建圆锥体 2023-01-11
- C# 扩展方法详解 2023-05-05
- 如何在C#中从Window Service退出进程 2023-11-12
- Docker部署ASP.NET Core应用到Linux中bash脚本 2023-09-26
- c#使用linq把多列的List转化为只有指定列的List 2023-02-03
- C#中对集合排序的三种方式 2023-07-04
- C#实现判断文件夹存在与否并创建文件夹的方法 2022-10-27
- C# 通过反射初探ORM框架的实现原理(详解) 2022-12-04
- C# 如何实现Token 2023-04-09