【问题标题】:How to display push notifications using SignalR in MVC如何在 MVC 中使用 SignalR 显示推送通知
【发布时间】:2015-06-24 08:45:35
【问题描述】:

我在 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 集成以显示它?

【问题讨论】:

  • 您是否尝试将您的iss 实例广播给您的客户?它应该可以工作,你会得到一个形状相同的 JS 对象。我不明白您是否只是不确定如何广播对象的实例,或者您根本不知道如何向客户端广播。
  • @Wasp 是的,我不知道如何向客户广播(它不一定必须是一个对象,因为我只需要弄清楚如何去做),因为我刚刚开始最近在学习 Signalr。
  • 我也可以只广播一个变量,例如 Dim key = "key"

标签: json asp.net-mvc signalr


【解决方案1】:

这是一件非常简单的事情,也是 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

【讨论】:

  • 那么这是否正确:在用户控制器中我像您指定的那样调用集线器,然后在集线器中我这样做:Public Sub SendToClient(key As String) Clients.All.broadcast(key) End Sub ,然后我知道如何在客户端显示信息以便完成该部分
猜你喜欢
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多