signalR消息结构标志澄清?

时间:2013-05-18 13:27:34

标签: asp.net signalr

我已阅读here有关signalR的响应消息的结构:

例如

  • PersistentConnection

    {"C":"B,2CE|K,C|L,2|M,0|I,0|J,0","M":["foo"]}

哪里

Persistent Response:
C - cursor
M - Messages
T - Timeout (only if true) value is 1
D - Disconnect (only if true) value is 1
R - All Groups (Client groups should be reset to match this list exactly)
G - Groups added
g - Groups removed

问题#1

发送消息部分有什么问题?为什么我需要所有的" C"信息?客户端只需要消息。消息号#N 依赖于消息号#N-1(AFAIK) - 所以我没有看到这个" C"部分。 (我假设错过了这里的错误)。

问题#2

即便如此,我如何理解令牌的含义?我在手册中没有看到" K,L,I,J,2CE"令牌。

在哪里/我如何理解他们在说什么?如果我不希望服务器发送该信息但只发送消息怎么办?

1 个答案:

答案 0 :(得分:6)

开源有一个经常被忽视的功能。您只需下载源代码并浏览一下即可。只需在源代码中搜索字符串“R”,我就可以找到您要查找的一些信息。

回答#2: 这些速记属性名称直接映射到SignalR中的对象的JsonSerialization。 HubResponse

  • S - State
  • R - 结果
  • 我 - Id
  • E - 错误
  • T - StackTrace

PersistantResponse

  • L - LongPollDelay
  • D - 断开连接
  • T - TimedOut
  • G - GroupsToken

在当前的代码库中找不到其他一些内容,并且由于您提到的问题是7个月后,我猜它们已被重构。

回答#1: 元数据对SignalR的运行方式非常重要。框架的双刃剑是我们卸载域或它解决的框架及其创建者,我们暗中同意让他们成为域专家。有时这会使它成为一个黑盒子,如果你想看看每个属性实际上用于下载源代码并遵循代码。如果由于某些性能原因,你觉得有必要修改一些你认为无关紧要的代码,并给它一个镜头。