私は MVC4 Web アプリケーションを実行していて、signalr を使用することにしました。理解できないことが 1 つだけあります。おそらく何か間違ったことをしているのでしょう...
HomeController を呼び出す ActionLink を含むページ (ホーム) があります。コントローラーにはこれがあります:
ホームコントローラー:
public class HomeController : Controller
{
private IHubContext context;
public HomeController()
{
context = GlobalHost.ConnectionManager.GetHubContext<HomeHub>();
}
...
public ActionResult Scan()
{
context.Clients.All.StartedScanning();
}
}
ホームハブ:
public class HomeHub : Hub
{
public void StartedScanning()
{
Clients.All.setStatusMessage("Scanning started...");
}
}
インデックス.cshtml
...
@Html.ActionLink("Scan for media", "scan", null, new
{
@class = "scanActionLink"
})
...
@section scripts
{
<script src="~/Scripts/jquery.signalR-1.1.2.js"></script>
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var home = $.connection.homeHub;
home.client.setStatusMessage = function (message) {
alert(message);
}
// Start the connection.
$.connection.hub.start().done(function () {
});
})
</script>
}
実際、コードは正常に実行されていますが、メインではなく他のウィンドウでのみ実行されています。それは正常ですか?
私は十分に明確であったことを願っています。
ありがとう。