1

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

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

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

conn.start();

这段代码执行并工作,除了我得到一个 404 错误。JS 试图访问http://localhost:32344/echo/negotiate并且找不到它。如果我在没有“协商”的情况下点击 url,则请求完成。

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

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

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

4

2 回答 2

4

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

按照此处的快速入门和端到端示例进行操作:

于 2012-04-09T04:59:17.830 回答
0

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

$.connection.hub.start(function () {
     myhub.send('test');
});
于 2012-04-09T12:12:13.420 回答