Я пытаюсь использовать SignalR в ASP. NET 4.0 веб-формах.
Я прошел обучение и смог заставить SignalR работать с default.aspx, который находится на root моего проекта, который доступен без входа в систему.
Теперь я хочу использовать его на страницах, которые доступны после входа в систему.
Одна главная страница, у меня есть следующий фрагмент кода.
<head>
....
...
<script src="../Scripts/jquery-1.6.4.js"></script>
<script src="../Scripts/jquery.signalR-2.0.0.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var logger = $.connection.myhub1;
logger.client.logMessage = function (msg) {
console.log(msg);
//$("#logUl").append("<li>" + msg + "</li>");
};
$.connection.hub.start({ pingInterval: 10000 }).done(function () {
alert('Hub starts');
}).fail(function (e) {
alert('There was an error');
console.error(e);
});
$.connection.hub.logging = true;
});
</script>
...
...
</head>
Класс концентратора - MyHub1, и его уровень root
Imports Microsoft.AspNet.SignalR
Imports Microsoft.AspNet.SignalR.Hubs
<HubName("myhub1")>
Public Class MyHub1
Inherits Hub
Public Shared ReadOnly _Timer As System.Timers.Timer = New System.Timers.Timer()
Shared Sub New()
_Timer.Interval = 2000
AddHandler _Timer.Elapsed, AddressOf TimerElapsed
_Timer.Start()
End Sub
Private Shared Sub TimerElapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
Dim hub = GlobalHost.ConnectionManager.GetHubContext("myhub1")
hub.Clients.All.logMessage(String.Format("{0} - Still running", DateTime.UtcNow))
End Sub
Public Shared Sub LogMessage(ByVal str As String)
Dim hub = GlobalHost.ConnectionManager.GetHubContext("myhub1")
hub.Clients.All.logMessage(str)
End Sub
End Class
Мастер-страница применяется к UserDefault.aspx, к которому применена мастер-страница с кодом javascript, указанным выше. На default.aspx, когда пользователь вводит учетные данные после входа в систему. UserDefault.aspx показывается пользователю.
Теперь при проверке в инструменте dev создается папка signalR / hubs с файлом js, но в консоли ошибка
$. Соединение не определено ....
Что я здесь не так делаю?
Нужно ли перемещать MyHub1?