我有一个Web API端点,用于创建记录并在创建记录时发出成功的201 Created。
是否可以向独立的HTML / JS网页发送通知,表明在使用SignalR创建记录时会创建记录?
如何在Web API中创建此发布者以及如何从独立网页订阅该发布者?
答案 0 :(得分:3)
是的 - 只要该浏览器与SignalR Hub有活动连接,就有可能。
您可以使用此代码作为起点。它假设您有一个名为MessageHub
的SignalR Hub类。这会向all active SignalR clients
广播一条消息。
[RoutePrefix("api/messaging")]
public class MessagingController : ApiController
{
[Route("")]
public void Post(Message message)
{
var notificationHub = GlobalHost.ConnectionManager.GetHubContext<MessageHub>();
if (notificationHub != null)
{
try
{
// create your record
notificationHub.Clients.All.creationSuccess(message);
}
catch (Exception ex)
{
// do a thing
}
}
}
}
creationSuccess
是客户端(JavaScript)上的函数的名称,它将处理您所引用的浏览器内部的通知。 Here's more information regarding the details of that