我创建了一个小型MVC SignalR应用程序,我在子域下运行服务器时遇到问题: http://chat.mydomain.com,映射到名为/ chat。
的文件夹我还使用SignalR Client制作了一个控制台程序,该程序连接并且工作得非常好,非常奇怪。
MVC应用中的错误是来自http://chat.mydomain.com/chat/signalr/negotiate?clientProtocol=[...]的404。我可以看到为什么会这样,但不知道如何解决它。在我生成的集线器文件中,行
signalR.hub = $.hubConnection("/chat/signalr", { useDefaultPath: false });
技术上是正确的,但应阅读$.hubConnection("/signalr", { useDefaultPath: false });
关于如何改变这个的任何想法?或者我应该只使用原始连接API。
另外为什么它在控制台应用程序中正常工作?
提前致谢。
答案 0 :(得分:4)
您可以继续使用生成的集线器文件。您只需在开始SignalR连接之前修改hubConnection的URL(存储在$.connection.hub.url
)。
// This is initially set to "/chat/signalr" as specified in the hubs file
$.connection.hub.url = "/signalr";
$.connection.hub.start()...