2015-04-29 2 views
0

Я пытаюсь подключиться к концентратору SignalR, который находится в отдельном проекте Web Api из проекта MVC, но соединение продолжает сбой с ошибкой. Я тестирую локально, но, видимо, если вы используете IE, он будет обрабатывать Cross domain для вас.Не удалось подключиться к концентратору SignalR от Javascript

В Chrome

http://localhost:53453/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22gweventhub%22%7D%5D&_=1430342757730 Failed to load resource: the server responded with a status of 404 (Not Found)

В IE

Connection Error: Error during negotiation request.

Вот код сервера для концентратора.

[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); 
     }); 
}); 

Есть ли что-то, что мне не хватает в процессе подключения?

ответ

1

Try путем изменения коды ниже

$.connection.hub.url = "http://localhost:53453/signalr"; 
 
var hub = $.connection.GWEventHub; 
 

 
//rest of your logging and other functions goes here 
 
    
 
$.connection.hub.start().done(function() { 
 
     alert('connect to GatewayEventHub, Connection ID = ' + $.connection.hub.id); 
 
    }) 
 
    .fail(function(e) { 
 
     console.log('Connection Error ' + e); 
 
    });

+0

, так что, похоже, получил мне немного ближе, но теперь ошибку поговорки «неперехваченную Ошибку: SignalR:. Ошибка загрузки концентраторов Убедитесь ссылка на ваш хаб верна, например . " Я попробовал добавить к виду, которое вызывает код signalr, но все равно не повезло. –

+0

Не могли бы вы попробовать ниже? Добавить тильду (~) перед ней. – Ruchira

+0

К сожалению, даже после добавления, что я все еще получаю ту же ошибку :( –

Смежные вопросы