信号器 - 将回调序列化为事件而非函数调用?

时间:2013-08-20 23:58:32

标签: signalr signalr-hub signalr.client frp

在Signalr中,是否支持使用事件而不是回调。

在你拿起你的干草叉之前让我解释一下。

以下是第一个例子here

Clients.All.addContosoChatMessageToPage(name, message);

不会调用集线器代理的addContosoChatMessageToPage(名称,消息),但会调度addContosoChatMessageToPage事件以及一些额外信息。 (并没有要求它完全是相同的api电话)

我问这一切的原因是因为

  1. ELMbacon.js
  2. 等功能性反应式编程框架一起使用效果更好
  3. 我不想自己这样做,基本上创建自己的子框架。当然我总是可以做Clients.All.CreateEvent(name,params ...),我不断回调我的方法来创建这个事件
  4. 我实际上认为事件在某些情况下可以更好地分离关注点。
  5. 我疯了吗?做这样的事情吗?

1 个答案:

答案 0 :(得分:1)

这已经得到支持。如果您不想自己进行调度,并且在运行时知道“事件”或“方法”的名称,则可以执行以下操作:

IClientProxy proxy = Clients.All;
proxy.Invoke(name, args);

这使您可以编写代码,在编译时您可能不知道要在客户端上回调的事件的名称。