저는 SignalR의 초보자입니다. 나는 이걸하려고 애 쓰고있어 Progress Bar example.
NuGet을 통해 패키지를 다운로드하고 설치할 수 없습니다. 액세스를 거부하는 내 작업에 프록시가 있기 때문입니다. 그래서 저는 DLL과 스크립트를 프로젝트에 직접 포함 시켰습니다.Asp.net의 SignalR MVC 3 : 허브가 정의되지 않았습니다.
내보기 코드는 다음과 같습니다 :
<h2>@ViewBag.Message</h2>
<input type="button" id="bookButton" value="Book flight" />
<br />
<b>Status:</b> <span id="msg"></span>
<hr />
<input type="button" id="percButton" value="Process pending emails" />
<div id="bar" style="border: #000 1px solid; width: 300px;">
</div>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/gauge-bar.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.6.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/json2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalr.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/simple-gauge-bar.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var bookingHub = $.connection.bookingHub;
$("#percButton").click(function() {
bookingHub.processPendingEmails();
});
$("#bookButton").click(function() {
bookingHub.bookFlight("fco", "jfk");
});
bookinghub.updategaugebar = function (perc) {
$("#bar").html(gaugebar.generate(perc));
};
bookinghub.displaymessage = function (message) {
$("#msg").html(message);
};
$.connection.hub.start();
});
</script>
내 허브 코드 : I 프로젝트를 실행하면
public class BookingHub : Hub
{
public void Send(String message)
{
// Call the addMessage method on all clients.
Clients.displayMessage(message);
}
public void BookFlight(String from, String to)
{
// Book first leg
Clients.displayMessage(String.Format("Booking flight: {0}-{1} ...", from, to));
Thread.Sleep(2000);
// Book return
Clients.displayMessage(String.Format("Booking flight: {0}-{1} ...", to, from));
Thread.Sleep(3000);
// Book return
Clients.displayMessage(String.Format("Booking flight: {0}-{1} ...", to, from));
Thread.Sleep(2000);
// Some return value
Clients.displayMessage("Flight booked successfully.");
}
public void ProcessPendingEmails()
{
Clients.updateGaugeBar(10);
Thread.Sleep(2000);
Clients.updateGaugeBar(40);
Thread.Sleep(3000);
Clients.updateGaugeBar(64);
Thread.Sleep(2000);
Clients.updateGaugeBar(77);
Thread.Sleep(2000);
Clients.updateGaugeBar(92);
Thread.Sleep(3000);
Clients.updateGaugeBar(99);
Thread.Sleep(2000);
Clients.updateGaugeBar(100);
}
}
, 나는 bookingHub가 정의되어 있지, 나는에 null 참조 오류가있어주의 이 점.
무엇이 잘못 했습니까?
미리 감사드립니다.
를 참조
당신의 브라우저? –
페이지의 소스 코드를 확인하고 모든 라이브러리가로드되고 있는지 확인하십시오. 한번 global.asax에서 허브 경로를 다시 매핑해야했기 때문에 한 번 같은 문제가있었습니다 (signalr에 문제가있을 수 있습니다.) –