Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 长轮询时,信号服务器是否将所有挂起的请求作为单个轮询响应发送?_C#_Json_Signalr_Long Polling_Responseformat - Fatal编程技术网

C# 长轮询时,信号服务器是否将所有挂起的请求作为单个轮询响应发送?

C# 长轮询时,信号服务器是否将所有挂起的请求作为单个轮询响应发送?,c#,json,signalr,long-polling,responseformat,C#,Json,Signalr,Long Polling,Responseformat,我们正在收到一个signar客户端的挂起请求,该客户端在轮询响应中被聚为一个数组,如下所示: {"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"

我们正在收到一个signar客户端的挂起请求,该客户端在轮询响应中被聚为一个数组,如下所示:

{"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
]}
通常,对民意测验的单个响应如下所示:

{"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限制,并且在轮询时会将这些消息发送给客户端。 我的问题是,它们会像队列一样一个接一个地发送,对一次投票的一个响应,还是将所有消息作为对第一次投票的响应一起发送(就像我们得到的,上面提到的)

背景和实际问题: 我们有一个处理longpolling的信号器客户端(C1)和云中的信号器服务器。有一个用户(U1)连接到服务器并为C1发送消息,我们使用服务器上的Clients.user({C1})。{Method}将这些消息转发给C1。 当U1向C1发送多个快速请求,而C1无法足够快地处理它们时,我们会看到发送到C1的集群响应。C1没有配置为处理集群响应,它拒绝该响应,并且我们看到服务器对C1的相同集群响应的无休止循环,用于每一次进一步轮询

如果您对此有任何见解,我将不胜感激。
提前感谢。

关于这个问题的答案,首先,信号器在长池中默认情况下不会连接

信号员工作程序-

  • 它尝试与WebSocket连接

  • 如果无法连接,则尝试连接服务器发送的事件

  • 即使失败,它也会尝试使用服务器框架

  • 即使失败了,它也使用长轮询作为回退

  • 可以找到更多

    关于它的性能,您可以在中找到更多信息

    因此,经测试,信号器可以处理网络设备所能处理的所有请求,因此数据传输几乎没有限制

    你的问题的答案- 在你的情况下,我们需要检查一些东西

  • 是否启用了HTTPS?如果没有,请设置HTTPS,因为如果没有HTTPS,您将永远无法使用WebSocket,建议使用它

  • 如果启用了HTTP,那么它应该与WebSocket通信,如果网络正常,这种问题将永远不会发生。但对于您的情况,我认为,您的网络存在一些问题,导致一些数据丢失,这就是它一次发送太多数据的原因

  • 请检查信号器的超时配置。您可以尝试更改信号器的超时设置


  • 我认为,如果你遵循这三点,你就能找到解决问题的方法。

    1。WebSocket不需要Https。2.我理解Signal中的传输回退,但我的客户机专门处理长轮询。3.这个问题与性能无关。请你把问题读清楚。