使用带有MVC4的高级集线器api的SignalR错误 - “/ echo / negotiate 404 Not Found Error”

时间:2012-04-09 04:10:06

标签: c# javascript asp.net-mvc signalr

我在js客户端上运行了一些非常基本的SignalR代码:

var conn = $.connection("@Url.Content("/echo")");

conn.Debug = function (msg) {
    console.log(msg);
};

conn.start();

此代码执行并正常工作,但我收到404错误。 JS正试图访问http://localhost:32344/echo/negotiate但它无法找到它。如果我在没有“协商”的情况下点击了网址,则请求完成。

我没有触及Global.asax,服务器代码是基本的,但是还没有从客户端调用此代码:

public class SpatialHub : Hub
{
    public void Send(string data)
    {
        Caller.Debug("sent!");
    }
}

任何想法都将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

您正在将“高级别集线器”客户端服务器代码与“低级别连接”客户端API混合使用。

按照此处的快速入门和每个示例的结束示例:

答案 1 :(得分:0)

我知道我哪里出错了。我正在寻找一个解决不同问题的方法,并将两者混为一谈。但是,我已经知道如果方法调用立即发生,必须在hub.start中包含方法调用:

$.connection.hub.start(function () {
     myhub.send('test');
});