【发布时间】:2015-02-23 18:06:57
【问题描述】:
我正在尝试将我的 signalR 演示配置到我的项目中
框架:4.0, SignalR 版本:1.1.3
这是我的代码
$(function () {
var connection = $.hubConnection('http://localhost:32555/');
var chat = connection.createHubProxy('myChatHub');
chat.on('send', function (message) {
$('#chat').html($('#chat').html() + "\r\n" + message);
});
connection.logging = true;
connection.start().done(function () {
alert("Connection Complete");
$('#sendBtn').click(function () {
chat.invoke('send', $('#message').val());
});
}).fail(function (param) {
console.log(param);
});
});
全球.asax
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });
}
.cs
namespace vPortal
{
[HubName("myChatHub")]
public class LetsChat : Hub
{
public void send(string message,string userid,string Name)
{
Clients.All.addMessage(message, userid, Name);
}
}
}
当我尝试运行页面时出现此错误
SignalR: Error during negotiation request:
但是,我在 global.asax 中启用了代理,我尝试将我的 signalR 升级到版本 2.2.3。 但是,我的项目包与当前版本不兼容,所以我安装了 1.1.3 版本。
我不知道我在做什么错在这里我看到有连接但无法建立。
【问题讨论】:
-
为什么启用 EnableCrossDomain = true ?
-
@FrebinFrancis 我在某处看到他们默认从 1.1.3 禁用跨域
-
所以您想为您的应用程序启用跨域请求?我也想知道你是如何在你的应用程序中为 signalR 包含脚本文件的
-
@FrebinFrancis 不,但我只是在测试,但如果你禁用 CORS,那么我也会收到同样的错误这个 SignalR:不兼容的协议版本
-
请参阅此链接以了解如何在应用程序中使用 signalR 1X。 asp.net/signalr/overview/older-versions/…