Я пытаюсь использовать библиотеку SignalR в проекте, над которым мы сейчас работаем. Я прочитал несколько блогов, просмотрел несколько ответов stackoverflow и проверил документацию signalr, но безуспешно. Приведенный ниже код является лишь самым простым примером, который я пытаюсь заставить работать.
Я использую SignalR 1.0.1 с концентраторами, jquery 2.0.0, ASP.NET MVC2, .NET Framework 4, сигнализатор/концентраторы загружаются через Url.Content("~/signalr/hubs")
. В исходном коде страницы, когда я нажимаю signalr/hubs, я вижу сгенерированный SignalR код js.
Я также добавил RouteTable.Routes.MapHubs();
в начало Application_Start() My Hub:
public class Chat : Hub
{
public void Send()
{
Clients.All.addMessage();
}
}
Клиентский код в готовом блоке документа jQuery
$(function() {
var chat = $.connection.chat;
chat.client.addMessage = function() {
console.log("hello here");
};
$.connection.hub.logging = true;
$.connection.hub.error(function() {
console.log("An error occured1");
});
$.connection.hub.start()
.done(function() {
alert("Now connected!");
})
.fail(function() {
console.log("Could not connect");
});
});
Проблема в том, что: http://localhost/EC/signalr/negotiate
возвращает статус 200 OK, но тело ответа пусто, поэтому соединение не создается.
Пробовал ставить runAllManagedModulesForAllRequests="true"
, ничего не менял, пробовал $.connection.hub.url = 'http://localhost/EC/signalr';
тоже, но опять безрезультатно.
Я также сохранил свой класс концентраторов в папке Hubs или в корне проекта.
Я был бы признателен за любую помощь в этом, так как у меня заканчиваются идеи, как и где искать решение.