beetlex-io / FastHttpApi

a lightweight and high-performance http/websocket service component in the dotnet core platform that supports TLS.
Apache License 2.0
650 stars 175 forks source link

Wifi下WebSocket发送延迟! #159

Closed microfu closed 3 years ago

microfu commented 3 years ago

作者您好,我有如下问题咨询。

问题描述: 服务端在PC环境下,发送数据给Wi-Fi网络的WebSocket Client时, 出现“session send queue overflow! MaxWaitMessages“?目前只有一个连接,只是处理数据发送。数据大小在 < 350KB, 大约每秒要发送20MB/s。另外,在PC(Server)与PC(Client)之间时,相对正常,但到Wi-Fi环境下(弱网)变得不正常。请问我如何调配参数能满足要求?

我采用如下方法可以不出现错误,但性能达不到要求。方法如下: 方法:在服务端的该方法“Server.SendToWebSocket()”之后,增加发送延迟,通讯延迟正常,但每秒的性能不满足;

服务端(PC): BeetleX.FastHttpApi 1.9.8

客户端(Pad): BeetleX.Http.Clients 1.6.0(Wi-Fi)

在配置文件中,通过配置调优化是否可以改善?或者有别的办法解决?

盼复!

beetlex-io commented 3 years ago

组件暂无法解决网络上的延时,可以尝试使用多个ws连接

beetlex-io commented 3 years ago

session send queue overflow! MaxWaitMessages 可以通过配置ServerOptions的属性值解决设置成0是不限制

microfu commented 3 years ago

多个ws连接?目前是服务端往客户端发送数据,即S => C send data. 请问如何配置?

microfu commented 3 years ago

目前的需求就是一个服务端对 = 2个客户端。 问题主要表现在,每秒数据发送30次,每次大于150kb可能出现发送给客户端的数据阻塞在服务端的通讯网络中。当到达一定时间后,会触发”session send queue overflow“错误!

microfu commented 3 years ago

目前的需求就是一个服务端对 = 2个客户端。 问题主要表现在,每秒数据发送30次,每次大于150kb可能出现发送给客户端的数据阻塞在服务端的通讯网络中。

microfu commented 3 years ago

我尝试着,设置过MaxWaitMessages这个值,大概在500,最大支持1000。还是会有问题出现。昨晚我是通过调整发送延迟才解决的。但这让这个组件的性能下降不少。原本它可以表现更好的!