Asp.net mvc MVC3中的信号机,定时和启动/连接问题?
我对MVC3和信号机有一个非常奇怪的问题。。我有一个简单的枢纽Asp.net mvc MVC3中的信号机,定时和启动/连接问题?,asp.net-mvc,asp.net-mvc-3,c#-4.0,signalr,Asp.net Mvc,Asp.net Mvc 3,C# 4.0,Signalr,我对MVC3和信号机有一个非常奇怪的问题。。我有一个简单的枢纽 [HubName("test")] public class Test: Hub { public object GetStuff() { return new { dummy = "Test" }; } } 和一些客户端代码 var connection = $.connection.test; connection.start(); connection.getStuff(); 这是一
[HubName("test")]
public class Test: Hub
{
public object GetStuff()
{
return new { dummy = "Test" };
}
}
和一些客户端代码
var connection = $.connection.test;
connection.start();
connection.getStuff();
这是一个错误
TypeError:Object#没有方法“start”
如果我改为
var connection = $.connection("test");
我得到一个不同的错误
TypeError:Object#没有方法“getStuff”jquery-1.6.4.min.js:4
405后(不允许使用方法)
注意:出于某种原因,它试图在控制器下进行协商
有什么具体的路线需要我登记吗?还有什么我不知道的魔法
更新
所以在控制台上玩一玩——第一个版本实际上创建了一个对象,它有getStuff(),我可以调用它。但signer吐了,因为我必须先调用start(),这是不存在的!第二个创建了一个对象,该对象有start(),但没有getStuff()
更新2
尝试改为执行$.connection.hub.start。这似乎在控制台中起作用,但在页面加载中不起作用。。可能在中心调用之前启动尚未完成?它是异步的吗?启动信号机连接不是瞬时的。调用
connection.GetStuff()如果尚未建立连接,则代码>可能会失败。如果希望在与集线器建立连接后运行此代码,则应使用回调函数
var connection = $.connection.test;
$.connection.hub.start(function(){
// By convention all exposed hub methods start with lowercase
connection.getStuff();
});
集线器快速启动:
深入了解signarjavascript客户端:尝试以下操作:
var connection=$.connection(@Url.Content(“~/echo”) 必须添加轮毂部分:
$.connection.hub.start();
无法确定-但对于第二种情况,它可能区分大小写。两者都不起作用,协商url返回404,因为它不存在(集线器位于根位置)…也尝试了这一点-并在代码中设置计时器。它的start()方法非常慢。同样的代码,但是在webforms中而不是在mvc中连接只需0.2秒。在MVC模式下,3-5秒。。MVC方面可能存在一些冲突?