如何在 MVC 中使用 SignalR 显示推送通知

How to display push notifications using SignalR in MVC

我在 MVC 中使用 SignalR 在 MVC 中的基本聊天类型设备中显示信息。一切正常,但我想显示来自 Json 有效负载的信息,该负载已被反序列化,如下所示:

Dim iss As IssueObjectClass = JsonConvert.DeserializeObject(Of object)(json)

信息不一定要显示,不一定是对象也可以是变量,比如我也可以显示这个:

Dim key = iss.issue.key

我有使用显示基本信息(消息和用户名)的聊天中心设备进行连接的代码。这是我应该尝试使用 SignalR 显示我的 Json 的方式吗?我知道 SignalR 用于实时 Web 应用程序,但我不确定它如何显示从 webhook 触发的信息作为 Json 有效负载。

这就是我在聊天中心显示消息的方式,但我想显示来自 webhook 的信息,与在应用程序上键入的任何内容无关。我想显示来自 JIRA 的 HTTP POST 的信息:

var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
$('#discussion').append('<li><strong>' + encodedName + '</strong>: ' + encodedMsg + '</li>');
$('#discussion').text = encodedMsg;

如何将 SignalR 与 Json 集成以显示它?

这是一件非常简单的事情,也是 SignalR 的常见情况。在您接收和反序列化对象的代码中,您只需调用如下内容:

var context = GlobalHost.ConnectionManager.GetHubContext<YourHub>();
context.Clients.All.broadcastIssue(iss);

在您的客户端上,您必须以这种方式定义处理程序在开始连接之前:

var yourHubProxy = $.connection.yourHub;
yourHubProxy.client.broadcastIssue = function (iss) {
    // ...do your stuff...
};

这是非常基本的代码,需要更好地组织,但它应该能让您走上正轨。我的建议是您阅读官方 SignalR 文档,该文档内容广泛且做得很好,尤其是 guides to the APIs.