我试图连接到位于从MVC项目一个单独的Web API项目,但连接保持与错误而失败一个SignalR枢纽。 我在本地测试,但显然,如果你使用IE浏览器会处理跨域你。
在Chrome中
HTTP://本地主机:53453 / signalr /谈判clientProtocol = 1.5&connectionData =%5B%7B%22name%22%3A%22gweventhub%22%7D%5D&_ = 1430342757730?未能加载资源:服务器回应404状态(未找到)
在IE浏览器
连接错误:协商请求时出错。
下面是在轮毂的服务器代码。
[HubName("GWEventHub")]
public class GatewayEventHub : Hub
{
public override Task OnConnected()
{
this.Groups.Add(this.Context.ConnectionId, this.Context.Request.User.Identity.Name);
return (base.OnConnected());
}
public override Task OnDisconnected(bool stopCalled)
{
this.Groups.Remove(this.Context.ConnectionId, this.Context.Request.User.Identity.Name);
return base.OnDisconnected(stopCalled);
}
}
这里是JavaScript尝试连接到集线器。 这是位于一个单独的MVC应用程序。
$(function () {
var connection = $.hubConnection('http://localhost:53453');
connection.logging = true;
var hub = connection.createHubProxy('GWEventHub');
hub.logging = true;
function handleMessage(message) {
console.log('message from hub: ' + message);
}
hub.on('sendUserMessage', handleMessage);
connection.start()
.done(function() {
alert('connect to GatewayEventHub, Connection ID = ' + connection.id);
})
.fail(function(e) {
console.log('Connection Error ' + e);
});
});
是否有什么我失踪在连接过程?