SignalR 2.2.0:客户端无法呼叫集线器,集线器无法呼叫

时间:2015-05-20 16:08:58

标签: c# asp.net-mvc-5 signalr signalr-hub signalr.client

一切正常,现在不是:)我一直在查看我的源代码控制,但我无法弄清楚出了什么问题。我没有收到错误,而且在调试时我无法找出问题所在。调用集线器的客户端命令被调用,但永远不会调用集线器。不知道为什么。

<!--Reference the SignalR library. -->
<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>

/ signalR / hubs脚本确实生成了。

它曾经使用我目前使用NuGet安装的以下软件包(我已尝试重新安装它们)

Microsoft ASP.NET SignalR Core Components
Microsoft ASP.NET SignalR JavaScript Client
Microsoft ASP.NET SignalR System.Web
Microsoft ASP.NET SignalR
Microsoft.Owin.Host.SystemWeb
Microsft.Owin.Security
Microsoft.Owin
OWIN

UpdateInstallProgress(string installID)永远不会被调用:(

namespace RealtimeInstaller.Hubs
{
    public class UpdateInstallHub : Hub
    {
        public void UpdateInstall()
        {
            Clients.All.updateInstall();
        }

        public void UpdateInstallProgess(string installID)
        {
            Clients.All.updateInstallProgess(installID);
        }
    }
}

以下是客户端在JS中调用服务器的位置。这会被调用,但是终端永远不会被调用!

connection.server.updateInstallProgess(@ViewBag.installID);
不要担心身体里面的东西,下面是永远不会被调用的客户端JS代码!这是因为永远不会调用集线器来调用此客户端代码。

    var connection = $.connection.updateInstallHub;  

    connection.client.updateInstallProgess = function (installID) {
        //code that never gets called :(
    };

以下是Startup.cs

using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();       //mapping the SignalR hubs to the http routes
        }
    }
}

为什么没有呼叫集线器?我怀疑它与我的软件包/引用有关,但我不知道如何修复它,而不仅仅是重新安装我之前提到的软件包。任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:1)

在你的js代码中,你表明你似乎没有开始连接。