首先,我要说我是SignalR的新手。我知道基本的概念,但到目前为止还没有用SignalR编写过应用程序。
只要稍加努力,我就可以让基本的Azure SignalR ChatRoom示例在本地连接到Azure SignalR实例(只使用命令行中的'dotnet‘运行;如果从Visual中启动,只要我试图更改JS提示窗口中的名称,它就会停止)。
我现在想做的是从.NET核心控制台应用程序发送消息(不需要接收),并将它们显示在浏览器连接到的聊天室实例中。这是为了模拟一个后台过程,做一些工作,然后向Azure SignalR集线器发送一条消息,通知所有客户端结果。
我创建了一个新的.NET核心应用程序,当我尝试添加Microsoft.Azure.SignalR包时,我收到一条错误消息,声明“错误: package 'Microsoft.Azure.SignalR‘与项目Microsoft.Azure.SignalR中的'all’框架不兼容
有什么例子可以帮到我吗?像使用ChatRoom快速启动示例那样简单吗?
发布于 2018-07-02 08:21:52
如果您使用的.NET核心版本低于2.1,请将其更新为2.1,因为SignalR是在.NET Core2.1上发布的。
有关SignalR on .NET核心的更多信息,我们可以参考:开始在SignalR内核上使用ASP.NET
我们可以下载.NET Core2.1SDK,网址:.NET核心的所有下载
类似的线程供您参考:
发布于 2018-07-02 08:28:38
在服务器上,您需要使用依赖项注入获得集线器上下文,并调用SendAsync方法将其发送到客户端。例如:
public class Sender
{
public Sender(IHubContext<MyHub> context)
{
context.Clients.All.SendAsync(...);
}
}这里可以找到一个示例:https://github.com/aspnet/AzureSignalR-samples/tree/master/samples/FlightMap,它使用计时器向客户端广播数据。
对于遇到的“不兼容框架”错误,需要在将Microsoft.Azure.SignalR添加到项目时指定版本号,因为此包仍然是预发布版本:
dotnet add package Microsoft.Azure.SignalR --version 1.0.0-preview1-10011https://stackoverflow.com/questions/51126635
复制相似问题