C# SignalR Client-不包含事件名称的消息的处理程序?

C# SignalR Client-不包含事件名称的消息的处理程序?,c#,websocket,event-handling,signalr,C#,Websocket,Event Handling,Signalr,我正在编写一个SignalR Hub客户机来从web服务获取数据,对于我在其服务器上调用的一个更重要的方法,我得到的消息不包含我用来处理其他消息类型的“M:eventName”行(仅“R:[data]和I:[0]”)。当我启用跟踪时,我可以看到消息数据都在那里,但是在没有eventName的情况下如何处理呢 例如: `HubProxy.On<DataClass>("???event-name-here???", update => Console.WriteLine("OUTP

我正在编写一个SignalR Hub客户机来从web服务获取数据,对于我在其服务器上调用的一个更重要的方法,我得到的消息不包含我用来处理其他消息类型的“M:eventName”行(仅“R:[data]和I:[0]”)。当我启用跟踪时,我可以看到消息数据都在那里,但是在没有eventName的情况下如何处理呢

例如:

`HubProxy.On<DataClass>("???event-name-here???", update => Console.WriteLine("OUTPUT");`
`HubProxy.On(“???这里的事件名称?”),update=>Console.WriteLine(“输出”)`
消息跟踪:


23:02:34.9119843-e1ef32d1-d374-4d7d-82b4-011d906cb096-WS:OnMessage({“R”:{“MarketName”:null,“Nonce”:136096,“Buys”:[{“Quantity”:1261.89236694,“Rate”:0.00567987},{“Quantity”:17.66436734,“Rate”:0.00565000},{“Quantity”:0.35424250.00564585},{“Quantity”:148{“数量”:823.55802148,“比率”:0.00563998},{“数量”:92.11307737,“比率”:0.00563997},{“数量”:439.17714798,“比率”:0.00563990},{“数量”:35.46237619,“比率”:0.00563978},{“数量”:380.42279579,“比率”:0.00563777},{“数量”:308.83819198,“比率”:0.00563600},{“数量”:0.109563477,“比率”:0.0056563633},{“比率”:35505656367},{数量:11.23857359,“比率”:0.00562082},{“数量”:2.69321221,“比率”:0.00562011},{“数量”:0.99414299,“比率”:0.00561891},{“数量”:24.41591498,“比率”:0.00561500},{“数量”:0.35673516,“比率”:0.00560640},{“数量”:2.66949153,“比率”:0.00560500},{“数量”:38.3122855,“比率”:0.00560000},{“数量”:436490},{“:208.91357967,“比率”:0.00557050},{“数量”:0.89792884,“比率”:0.00556837},{“数量”:6.28868665},比率:0.00556555},{“数量”:178.86139272,“比率”:0.00556301},{“数量”:304.80171408,“比率”:0.00556300},{“数量”:0.56409118,“比率”:0.00556122},{“数量”:11.57184239,“比率”:0.0055639,“比率”:0.00553933},{:3.00000000,“Rate”:0.00555560},{“Quantity”:1579.01……。

看起来该消息不是客户端调用(您称之为“事件”),而是服务器调用的返回值


若要使用返回值,请在
IHubProxy
对象上使用
Invoke
而不是
Invoke

您必须创建一个。不管怎么说,“M、R和I”是什么?我正在接收来自我无法控制的Web服务器的事件。如何“创建一个?”(注册我的处理程序的事件名)。听起来您根本没有接收到事件(只是HTTP响应)。但是,请再说一次;只需编一个。如果您的调用是“myRequest”,则事件可以是“myRequestResponse”或“foo”或任何您想要的事件。您正在定义信号器中心;如果您没有定义信号器中心,则它与所有信号器事件一样不是真实的事件(实际上是客户端方法调用)必须有名称。听起来你好像不了解信号集线器的功能。无论如何,谢谢你的否决票。如果我没记错的话,C#signer客户端中的
Invoke
方法可以解释返回值;只需使用返回值即可