【问题标题】:Object to object communication with SignalR hubs与 SignalR 集线器的对象到对象通信
【发布时间】:2013-11-19 17:28:36
【问题描述】:

在我的应用程序中,我希望客户端 JS 代理对象与服务器上的适当 .NET 对象进行通信。我有许多不同类型的对象。每种类型都有自己的一组方法。

所以我需要的是一个 JS-object 到 C#-object 的 RPC 通信。

我的第一个想法是通过 Signal/R 集线器实现这一点,并利用这个很好的自动生成 RPC 代理功能。但我不确定这是否可能。我知道集线器是暂时的,但无论如何我都在寻求 SignalR 的支持。

我想像下面这样继续:

  • 服务器:为每个对象类型定义一个 C# 接口。
  • 服务器:为实现相应接口的每个对象类型定义一个集线器类。
  • 服务器:为每个实现接口的对象类型定义一个类。

  • 客户端:通过 url 检索代理。 url包含一个带有对象实例id的参数

  • 客户端:调用代理的函数

  • 服务器:在集线器中调用该函数时,我想以某种方式获取对象实例的 ID。 (也许来自连接对象?)有了这个 id,我想在字典中查找我的对象并调用适当的方法。

我知道一种解决方案可能是将对象 id 作为每个方法中的参数,但我想避免这种情况。

【问题讨论】:

    标签: c# proxy signalr signalr-hub signalr.client


    【解决方案1】:

    如果对象 ID 与 SignalR 连接一一对应,您可以使用 Hub.Context.ConnectionId 而不是将对象 ID 作为参数传递给每个方法。

    Hub.Context 具有其他有用的属性来访问请求 cookie 和活动的 IPrincipal 等内容。

    http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#contextproperty

    【讨论】:

    • 没有。每个连接我有多个对象。我想我需要多个连接到一个集线器的客户端代理。
    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多