1
我想发送通知给网页,这是一个客户端WebAPI
。 因此,我有2个解决方案,Asp.Net MVC
应用程序和WebAPI
应用程序。我已将SignalR
nuget
添加到两者。 WebAPI
部分具有下面的代码:SignalR和WebAPI
public class ProgressHub : Hub
{
public void Notification(string message)
{
Clients.Caller.onProgressNotification(message);
}
}
private void SendMessage(string message)
{
var context = Microsoft.AspNet.SignalR
.GlobalHost.ConnectionManager.GetHubContext<Hubs.ProgressHub>();
context.Clients.All.onProgressNotification(message);
}
,然后从我的控制器行动称之为:
public async Task<IHttpActionResult> ZonalPost()
{
SendMessage("Start");
// my long operation
SendMessage("Scan complete");
// my long operation
SendMessage("Convert complete");
// my long operation
在我的web应用程序(客户端部分):
<script src="~/Scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="~/signalr/hubs"></script>
<script>
$(function() {
var progress = $.connection.progressHub;
progress.client.onProgressNotification = function (message) {
console.log(message);
};
});
,但我得到了一个错误
430 Uncaught TypeError: Cannot read property 'client' of undefined
为什么以及如何解决?
尝试添加'[HubName(“progressHub”)]'到您的集线器 –
它如何解决客户端部分的问题? –
也许它不承认集线器 –