SignalR Hub没有执行指定的javascript

PCa*_*nde 2 javascript c# asp.net jquery signalr

我在ASP.Net Web应用程序项目中使用SignalR并遇到问题.我的目标是在站点的管理方面进行任何更改,导致一些GridViews刷新.我计划通过发送一些javascript的信号来运行,从而刷新包含GridViews的更新面板.

现在的问题是我无法获得我的集线器试图调用以在客户端执行的任何代码.我从jquery.SignalR.js文件中收到FireBug中的以下错误,但我不知道如何继续修复它:

Firefox can't establish a connection to the server at ws://localhost:40068/signalr?data=[]&transport=webSockets&clientId=92e4f7b9-0118-4fd9-bb55-5f22338d6162.

(function(n,t){"use strict";if(typeof ...on=n.signalR=i})(window.jQuery,window)
Run Code Online (Sandbox Code Playgroud)

抛出此错误后,它仍然看起来正在设置连接,但是没有通过集线器发送的javascript被执行

我在我的网站中设置了以下中心:

namespace testProject
{
    public class statusChanges : Hub
    {
        public void ServerChange()
        {
            Clients.serverChange();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在管理部分的按钮点击事件中有以下代码.调试显示此代码由服务器运行:

var clients = Hub.GetClients<statusChanges>();
clients.serverChange();
Run Code Online (Sandbox Code Playgroud)

最后,我在我的页面中有这个代码试图在收到信号确认它正在工作时发出警报.

<script type="text/javascript">
    $(function () {
        var statusChange = $.connection.statusChanges;
        statusChange.serverChange = function () {
            alert(8);
        };
        $.connection.hub.start();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么这不会运行或FireBug错误意味着什么?

dav*_*owl 5

萤火虫的错误是预料之中的.这是websocket连接失败,不要担心它,因为SignalR将回退到longpolling.您在服务器端有一个方法与客户端事件同名.这不起作用.

你想要这样的东西:

public Administration : Hub {
}
Run Code Online (Sandbox Code Playgroud)

事件处理程序

var clients = Hub.GetClients<Administration>();
clients.serverChange();
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

<script type="text/javascript">
    $(function () {
        var administration= $.connection.administration;
        administration.serverChange = function () {
            alert(8);
        };
        $.connection.hub.start();
    });
</script>
Run Code Online (Sandbox Code Playgroud)