0

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

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

跟随这里的第一个例子

Clients.All.addContosoChatMessageToPage(name, message);

不会调用集线器代理的 addContosoChatMessageToPage(name, message),但会调度带有一些额外信息的 addContosoChatMessageToPage 事件。(不要求它是完全相同的 api 调用)

我问这一切的原因是因为

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

我疯了吗?这样的事情存在吗?

4

1 回答 1

1

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

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

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

于 2013-08-21T08:13:11.390 回答