【发布时间】:2023-04-05 18:40:01
【问题描述】:
我想向网页发送通知,这是一个客户端WebAPI。
所以,我有 2 个解决方案,Asp.Net MVC 应用程序和 WebAPI 应用程序。我已将SignalR nuget 添加到两者中。 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);
}
然后从我的控制器 Action 中调用它:
public async Task<IHttpActionResult> ZonalPost()
{
SendMessage("Start");
// my long operation
SendMessage("Scan complete");
// my long operation
SendMessage("Convert complete");
// my long operation
在我的网络应用程序(客户端部分)中:
<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")]添加到您的中心 -
如何解决客户端的问题?
-
可能无法识别集线器
-
服务器部分当时甚至无法启动......还是没有?
-
你试过了吗?
标签: javascript jquery asp.net asp.net-mvc signalr