C# 信号集线器未执行指定的javascript
我正在ASP.NETWeb应用程序项目中使用SignalR,但遇到了一些问题。我的目标是使站点管理端的任何更改都会导致一些GridView刷新。我计划通过发送一些javascript运行的信号来实现这一点,从而刷新包含GridView的更新面板 现在的问题是,我无法获取hub试图调用以在客户端执行的任何代码。我从jquery.SignalR.js文件中收到FireBug中的以下错误,但我不确定如何继续修复它:C# 信号集线器未执行指定的javascript,c#,javascript,jquery,asp.net,signalr,C#,Javascript,Jquery,Asp.net,Signalr,我正在ASP.NETWeb应用程序项目中使用SignalR,但遇到了一些问题。我的目标是使站点管理端的任何更改都会导致一些GridView刷新。我计划通过发送一些javascript运行的信号来实现这一点,从而刷新包含GridView的更新面板 现在的问题是,我无法获取hub试图调用以在客户端执行的任何代码。我从jquery.SignalR.js文件中收到FireBug中的以下错误,但我不确定如何继续修复它: Firefox can't establish a connection to the
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)
抛出此错误后,它看起来仍然在设置连接,但没有执行通过集线器发送的javascript
我已在我的站点中设置了以下中心:
namespace testProject
{
public class statusChanges : Hub
{
public void ServerChange()
{
Clients.serverChange();
}
}
}
我在管理部分的按钮点击事件中有以下代码。调试显示服务器正在运行此代码:
var clients = Hub.GetClients<statusChanges>();
clients.serverChange();
var clients=Hub.GetClients();
clients.serverChange();
最后,我在我的页面中有一段代码,它试图在收到确认其工作的信号时启动警报
<script type="text/javascript">
$(function () {
var statusChange = $.connection.statusChanges;
statusChange.serverChange = function () {
alert(8);
};
$.connection.hub.start();
});
</script>
$(函数(){
var statusChange=$.connection.statusChanges;
statusChange.serverChange=函数(){
警觉(8);
};
$.connection.hub.start();
});
有人知道为什么不能运行这个程序,或者FireBug错误是什么意思吗?FireBug中的错误是意料之中的。这是websocket连接失败,不要担心,因为信号器将退回到长轮询。服务器端有一个与客户端事件同名的方法。那不行 你想要这样的东西:
public Administration : Hub {
}
事件处理程序:
var clients = Hub.GetClients<Administration>();
clients.serverChange();
var clients=Hub.GetClients();
clients.serverChange();
Javascript:
<script type="text/javascript">
$(function () {
var administration= $.connection.administration;
administration.serverChange = function () {
alert(8);
};
$.connection.hub.start();
});
</script>
$(函数(){
var管理=$.connection.administration;
administration.serverChange=函数(){
警觉(8);
};
$.connection.hub.start();
});
我有点困惑,serverChange javascript函数是否与导致回发的按钮位于同一页面上?是否使用浏览器的两个实例进行测试?firebug错误是一个非问题,正如您正确指出的那样,connect使用长轮询而不是web sockets afaik进行设置;引发事件的管理员和应获取警报的查看器。我在两个不同的浏览器中查看它。HttpContext行实际上只是放在那里测试它是否在执行该功能。我意识到这是垃圾,打算把它拿出来;我只是忘了在发布代码之前把它拿出来。不过我会试试你的答案。如果我用这种方式编写javascript,看起来我根本不需要hub中的任何东西?是的,在这种情况下,您只需要hub来生成客户端代理($.connection.{hubname})。我目前在本地机器上面临着完全相同的问题(即使SignalR仍然处理错误)。var clients=Hub.GetClients();clients.serverChange();您的示例的一部分-这是怎么回事?我使用的是相同类型的脚本和文件上载,实际上是从服务器上载到另一个服务器。所以只需要服务器事件。而且似乎也在以同样的方式失败。客户端无法看到进度条移动。它使用serverChange方法根据服务器进度进行移动。长时间投票有多长时间?