Signalr 客户端代码未调用 HUb

Signal R client code is not invoking the HUb

我正在使用 Visual studio 2010 和 jquery signal r 1.1.4 发送通知,就像我们在 facebook 中一样。 以下是使用的 Hub 方法

public class BroadcastMessage:Hub
    {
        public void BroadcastNotifications(string message)
        {
            Utility.AddNotification(message); //to save data to database

            int UnreadCount = Utility.getUnreadMessageCount(); //get the unread count 

            IHubContext context = GlobalHost.ConnectionManager.GetHubContext<BroadcastMessage>();
            context.Clients.All.receiveNotification(message, UnreadCount);
        }
        public void SendMessages()
        {
            IHubContext context = GlobalHost.ConnectionManager.GetHubContext<BroadcastMessage>();
            context.Clients.All.updateMessages();
        }
    }

我有文本 bx 以输入通知消息和发送按钮的部分视图是 @模型MyProject.Models.Notification

@

using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Notification</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Message)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Message)
            @Html.ValidationMessageFor(model => model.Message)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.LogonID)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.LogonID)
            @Html.ValidationMessageFor(model => model.LogonID)
        </div>
        <p>
            <input type="button" id="broadcastNotification" value="Send" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
<script src="~/Scripts/jquery-1.12.0.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.signalR-1.1.4.js" type="text/javascript"></script>
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
    $(function () {
        $.connection.hub.logging = true;
        var proxy = $.connection.broadcastMessage;

        $.connection.hub.start().done(function () {
            $('#broadcastNotification').click(function () {
                proxy.server.broadcastNotifications($("#Message").val()).done(function () {
                    proxy.server.sendMessages();
                });
            });
        });

    });
</script>
}

Global.asax 文件是

 protected void Application_Start()
        {
            //To register the default Hubs route
            RouteTable.Routes.MapHubs();
}

这里我的 signal r hub 方法没有在点击发送按钮时被触发。 我试过 http://localhost:XXXX/signalr 那里出现错误 "Protocol error: Unknown transport." 谁能告诉我我在这里犯了什么错误。

我建议您在启动时添加一些日志记录:

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var hubConfiguration = new HubConfiguration { EnableDetailedErrors = true };
        ConfigureAuth(app);
        app.MapSignalR(hubConfiguration);          
    }
}