c# - 如果 Hub 在不同的项目 SignalR 中,如何连接 Hub?

标签 c# android asp.net-web-api signalr signalr-hub

我正在使用 SignalR 项目,我想在 WebApi 项目和 Web 项目中使用 Hub。所以我创建了一个类库项目并在那里实现了 Hub。

我的项目结构如下:

-ChatHub
  -Hub
-Webapi
-Website 

这是我的中心:

[HubName("chathub")]
public class ChatHub : Hub
{
   public override Task OnConnected()
   {
       return base.OnConnected();
   }

   public override Task OnReconnected()
   {
       return base.OnReconnected();
   }   
}

当我从我的网站调用 Hub 时,它运行良好。

 <script src="~/signalr/hubs"></script>
 var chatHub = $.connection.chathub; 

这是我从外部(Android)连接集线器的方式:

mHubConnection = new HubConnection(http://{IpAddress}/ChatApp/);
mHubProxy = mHubConnection.createHubProxy(chathub);

应用程序接口(interface):

public IHttpActionResult LoginUser([FromBody]LoginModel model)
{
  var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();   
  //chatUser logic here
  hubContext.Clients.Client(chatUser.ConnectionId).receiver(response);
}

但它给了我一个错误:

java.util.concurrent.ExecutionException: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server 10-13 18:15:54.074 18686-18686/com.chatapp.android W/System.err: Caused by: microsoft.aspnet.signalr.client.http.InvalidHttpStatusCodeException: Invalid status code: 404

如果我的 Hub 在 API 项目之外,我们如何连接 Hub?

我已经完成了 Sharing a SignalR hub between a WebApi and MVC project但没有得到他们提供的答案。

最佳答案

您是否在设置连接和集线器代理后调用 mHubConnection.Start()?传递给 HubConnection 构造函数的 url 是否也是集线器的正确位置?这里有几个链接可能对您有帮助,如果您还没有浏览过的话:Access hub from .NET client , configure signalr url

关于c# - 如果 Hub 在不同的项目 SignalR 中,如何连接 Hub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46730632/

相关文章:

c# - 如何在 C# 中将相同的控件添加到多面板中?

c# - 如何使用 WPF MediaKit 或类似程序将使用 DES 创建的 DirectShow 筛选器图渲染到 WPF 控件上?

java - ARCore Android SDK – 如何在Transformable节点上制作缩放动画?

angular - 当进行 http 调用 angular2 时,连续(或并行)触发 observable 不起作用

c# - 如何从页面访问用户控件的值?

c# - 在 hangfire 中运行的 log4net 内部方法的线程错误

android - Smack 中的 SASL 和 SASL PLAIN 有什么区别?

java - 收到不完整的 UDP 数据包

javascript - Dynamics crm 2016 - Web API 查询 - 动态值

c# - 500 内部 : Multiple actions were found that match the request