Я сейчас работаю над проектом MVC3 и только начал использовать SignalR.
Я выполнил несколько демонстраций, но не могу заставить его работать, когда мои коды находятся внутри \ Views \ Shared_Layout.cshtml . Я всегда получаю «Соединение должно быть установлено до того, как данные могут быть отправлены». ошибка.
Пожалуйста, смотрите мои коды ниже:
Мой класс:
[HubName("notificationsHub")]
public class NotificationsHub : Hub
{
public void updateServer()
{
Clients.updateClient("boom");
}
}
Мой скрипт внутри _Layout.cshtml:
$(function(){
var signalR = $.connection.notificationsHub;
signalR.updateClient = function (message) {
alert(message);
};
$("#open").click(function () {
signalR.updateServer();
});
$.connection.hub.start(function () {
alert("Connected");
});
});
Ссылки на сценарии:
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.6.4.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.signalR.js")"></script>
<script type="text/javascript" src="@Url.Content("~/signalr/hubs")"></script>
Мой класс NotificationsHub находится в папке с именем NotificationsHub, которая находится на том же уровне каталогов, что и мои представления.
Я попробовал это на .html-файле, и он отлично работает (я получаю обратный вызов оповещения для $ .connection.hub.start).
Что мне здесь не хватает?
Спасибо