Signalr 集线器操作后的信号器回调

Signalr 集线器操作后的信号器回调,signalr,Signalr,我是信号员新手,如果这个问题太明显,我很抱歉,但我在文档中找不到任何答案 这是我的密码 /*1*/ actions.client.doActionA = function (result) { /*2*/ if(result.Success) /*3*/ log(result); /*4*/ // whatever /*5*/ }; /*6*/ actions.client.doActionB =

我是信号员新手,如果这个问题太明显,我很抱歉,但我在文档中找不到任何答案

这是我的密码

/*1*/   actions.client.doActionA = function (result) {
/*2*/           if(result.Success) 
/*3*/               log(result);
/*4*/           // whatever
/*5*/       };
/*6*/       actions.client.doActionB = function (result) {
/*7*/           if(result.Success) 
/*8*/               log(result);
/*9*/           // whatever
/*10*/       };
/*11*/   
/*12*/       // starts the hub
/*13*/       $.connection.hub.start().done(function () { 
/*14*/          // init UI
/*15*/       });
/*16*/   
/*17*/       // ...after some time...
/*18*/       $.connection.actionsHub.server.doActionA(model);
/*19*/   
/*20*/   my ActionsHub declare the methods
/*21*/   
/*22*/           public void DoActionA (MyModel model)
/*23*/           {
/*24*/               // ... do something
/*25*/               Clients.All.doActionA(result);
/*26*/           }
/*27*/           public void DoActionB (MyModel model)
/*28*/           {
/*29*/               // ... do something
/*30*/               Clients.All.doActionB(result);
/*31*/           }
我希望能够在服务器端执行每个命令之后,但在客户端执行之前,执行一个做一些事情的函数(即log(result))。是否有任何选项允许我这样做,以避免对每个doActionX首先显式调用日志

我希望上面的代码变成:

   // AFAIK THIS DOESN'T EXIST, IT'S AN EXAMPLE OF WHAT I'M LOOKING FOR!
   actions.client.done(function(data) { log(data);});

   actions.client.doActionA = function (result) {
      // whatever
   };
   actions.client.doActionB = function (result) {
      // whatever
   };

   // starts the hub
   $.connection.hub.start().done(function () { 
      // init UI
   });

   // ...after some time...
   $.connection.actionsHub.server.doActionA(model);

您可以通过集线器管道模块在服务器上实现该功能。Sooo这里有一篇文章描述它:

碰巧提供的示例正好记录了您要查找的内容。如果您想查看调用的结果,可以使用OnAfterIncoming覆盖,也可以使用BuildIncoming

以下是集线器管道模块的基类: 以及相应的文档

通过客户端上的信号器执行此操作的能力是一项正在进行的工作:
JS-
C#-


希望这有帮助

当从serverline调用某个方法时,您的代码已经在执行客户机函数。例如,每次从服务器(#25)调用该方法时,都会执行该方法。问题已编辑。我不想为每个命令都设置那一行,我想让日志操作自动执行。谢谢你的回答泰勒-请注意日志只是一个例子,我需要做不同的操作。你是说我可以从服务器调用客户机方法吗?