首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SignalR集线器连接到另一个SignalR集线器

使用SignalR集线器连接到另一个SignalR集线器
EN

Stack Overflow用户
提问于 2012-03-04 19:21:40
回答 1查看 3.2K关注 0票数 3

我有一个网站,有SignalR集线器,在这个集线器我需要连接到另一个SignalR集线器,这也是在一个网站托管。

代码语言:javascript
复制
public FirstHub : Hub, IDisconnect
{

  public void FirstMethod()
     ///Connect to second hub in the second website.
     HubConnection hubConnection = new HubConnection("http://localhost:1234");
     IHubProxy firstHub = hubConnection.CreateProxy("SecondWebSite.SecondHub");
     firstHub.On("secondCallBack", i =>
           {
               Caller.showMessage("Ok, Website 2 has return message");
           });

     hubConnection.Start().Wait();
     firstHub.Invoke("SecondMethod").ContinueWith(task =>
           {
               Caller.showMessage(task.Exception.Message);   
           }, TaskContinuationOptions.OnlyOnFaulted);
}

在第二个网站中,我有这个集线器:

代码语言:javascript
复制
public class SecondHub : Hub, IDisconnect
    {
        public void SecondMethod()
        {
            Caller.callBack("Yes, I got it");
        }
}

在第一个网站中,我有这个javascript代码

代码语言:javascript
复制
var firstHub = $.connection.firstHub;
 $.connection.hub.start({ transport: 'auto' }, function () {
        alert('connected');
    });
$('#TestButton').click(function () {
        firstHub.firstMethod();

firstHub.showMessage = function (msg) {
     alert(msg);
};

现在,当我打开页面时,我看到消息(已连接),但当我按下测试按钮时,我什么也得不到!!在fire-bug控制台中没有错误。但有时,我不知道这是怎么发生的,当我步入代码并开始调试时,浏览器显示消息(Ok,WebSite2有返回消息)。

我不知道发生了什么事!!

这个想法可行吗??我是不是漏掉了什么?

我在输出窗口中看到了下面这几行:

代码语言:javascript
复制
A first chance exception of type 'System.NullReferenceException' occurred in System.Web.dll
Failed to process message: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Web.HttpApplication.ThreadContext.Enter(Boolean setImpersonationContext)
   at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
   at System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback callback, Object state)
   at System.Web.AspNetSynchronizationContext.CallCallback(SendOrPostCallback callback, Object state)
   at System.Web.AspNetSynchronizationContext.Post(SendOrPostCallback callback, Object state)
   at SignalR.Client.Connection.OnReceived(String message) in D:\TestProjects\SignalR\SignalR.Client\Connection.cs:line 188
   at SignalR.Client.Transports.HttpBasedTransport.OnMessage(Connection connection, String response) in D:\TestProjects\SignalR\SignalR.Client\Transports\HttpBasedTransport.cs:line 139
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 19:37:45

@dfowler好的,正如我在评论中所说,这是SignalR中的一个错误,现在已经解决了。我的问题也解决了。

谢谢大卫,谢谢大家,你们太棒了。

以下是相关主题的链接。

SignalR .NET Client: Cannot Start Connection From Within Web Application App Domain

https://github.com/SignalR/SignalR/issues/221

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9554466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档