【发布时间】:2017-07-05 05:05:57
【问题描述】:
我们正在收到对信号器客户端的待处理请求,这些请求在轮询响应中以数组的形式聚集在一起,如下所示:
{"C":"s-0,9E632",
"M":[
84
{"H":"MyHub","M":"SetSomething","A":[{"myProp1":"setting","myProp2":59.0}]}
1,
84
{"H":"MyHub","M":"SetSomething","A":[{"myProp1":"setting","myProp2":60.0}]}
1,
84
{"H":"MyHub","M":"SetSomething","A":[{"myProp1":"setting","myProp2":61.0}]}
1,
84
{"H":"MyHub","M":"SetSomething","A":[{"myProp1":"setting","myProp2":62.0}]}
1,
6b
{"H":"MyHub","M":"SetMore","A":[{"myProp3":"Somestring","myProp4":0}]}
2
]}
通常对民意调查的单一响应如下:
{"C":"s-0,9E621","M":[
6b
{"H":"MyHub","M":"SetSomething","A":[{"myProp1":"setting","myProp2":59.0}]}
2
]}
我相信环形缓冲区将消息存储到 DefaultMessageBufferSize 限制,并且会在轮询时将这些消息发送给客户端。 我的问题是它们会被一个一个地发送,就像一个队列,一个对一个轮询的响应,还是作为对第一个轮询的响应一起发送的所有消息(就像我们得到的,上面提到的)?
背景和实际问题: 我们有一个在长轮询上工作的信号器客户端(C1)和我们在云中的 SignalR 服务器。有一个用户 (U1) 连接到服务器并为 C1 发送消息,我们使用服务器上的 Clients.User({C1}).{Method} 将这些消息转发给 C1。 当 U1 向 C1 发送多个快速请求,而 C1 无法足够快地处理它们时,我们会看到发送给 C1 的成束响应。 C1 未配置为处理成束响应,它拒绝该响应,并且我们看到服务器对 C1 的相同成束响应的无休止循环,每次进一步轮询。
希望对此有任何见解。 提前致谢。
【问题讨论】:
标签: c# json signalr long-polling responseformat