gpt4 book ai didi

c# - 从 .net 代码和 JavaScript 调用 SignalR hub

转载 作者:太空狗 更新时间:2023-10-30 00:26:00 26 4
gpt4 key购买 nike

我有一个 SignalR 集线器,我成功地从 JQuery 调用了它。

public class UpdateNotification : Hub
{
public void SendUpdate(DateTime timeStamp, string user, string entity, string message)
{
Clients.All.UpdateClients(timeStamp.ToString("yyyy-MM-dd HH:mm:ss"), user, entity, message);
}
}

像这样从JS成功发送更新消息

var updateNotification = $.connection.updateNotification;
$.connection.hub.start({ transport: ['webSockets', 'serverSentEvents', 'longPolling'] }).done(function () { });
updateNotification.server.sendUpdate(timeStamp, user, entity, message);

这样就成功接收了

updateNotification.client.UpdateClients = function (timeStamp, user, entity, message) {

我不知道如何从我的 Controller 中调用 sendUpdate。

最佳答案

从您的 Controller ,在与集线器相同的应用程序中(而不是从其他地方,作为 .NET 客户端),您可以像这样调用集线器:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<UpdateNotification>();
hubContext.Clients.All.yourclientfunction(yourargs);

请参阅 https://github.com/SignalR/SignalR/wiki/Hubs 脚下的从集线器外部通过集线器广播

调用您的自定义方法有点不同。可能最好创建一个静态方法,然后您可以使用它来调用 hubContext,因为 OP 在这里:Server to client messages not going through with SignalR in ASP.NET MVC 4

关于c# - 从 .net 代码和 JavaScript 调用 SignalR hub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com