先说场景,当前有一台服务器,和400台客户端。
客户端需要时时上报设备信息(电量、充电状态、任务进度等信息)。
服务端也有一定可能下发任务(或许控制某一台设备重启,或者控制某一个设备关机之类的)。
……
当前的解决方案是,服务端写了一个asp.net api接口,客户端时时上报。
原本呢,我是每秒钟上报一次的。。负荷太大了,最后降低为10秒上报一次后来改成了30秒上报一次。
而照成的后果,就是服务端下发命令变得不再及时,比如我看到设备的某个页面,需要截图,
这时候服务端下发个截图命令,运气不好,30秒后,屏幕画面早就变更了。
……
这时候我就想,有其他方案么,socket可以么,应该是实时的吧。
这个我接触的不多,只有学习的时候,做过几个tcp和udp的demo,不是太了解在负荷方面的情况。
……
写到这里,突然感觉问题有些歪了,额,socket的负荷,应该和客户端上报数据的频率有关系吧。
我假设,socket客户端上报数据的频率和http一致。
更准确的说,我保持长链接,只希望达到两个目的:(1、心跳,监控设备是否存活。2、命令的及时下发)。我不了解socket保持长链接的机制,不知道这样一直连接在一起,会不会一直有数据交流,会不会加大负荷,所以来询问一个问题。
如果有因为不懂而问的比较傻的,还请见谅唉。
客户端需要时时上报设备信息(电量、充电状态、任务进度等信息)。
服务端也有一定可能下发任务(或许控制某一台设备重启,或者控制某一个设备关机之类的)。
……
当前的解决方案是,服务端写了一个asp.net api接口,客户端时时上报。
原本呢,我是每秒钟上报一次的。。负荷太大了,最后降低为10秒上报一次后来改成了30秒上报一次。
而照成的后果,就是服务端下发命令变得不再及时,比如我看到设备的某个页面,需要截图,
这时候服务端下发个截图命令,运气不好,30秒后,屏幕画面早就变更了。
……
这时候我就想,有其他方案么,socket可以么,应该是实时的吧。
这个我接触的不多,只有学习的时候,做过几个tcp和udp的demo,不是太了解在负荷方面的情况。
……
写到这里,突然感觉问题有些歪了,额,socket的负荷,应该和客户端上报数据的频率有关系吧。
我假设,socket客户端上报数据的频率和http一致。
更准确的说,我保持长链接,只希望达到两个目的:(1、心跳,监控设备是否存活。2、命令的及时下发)。我不了解socket保持长链接的机制,不知道这样一直连接在一起,会不会一直有数据交流,会不会加大负荷,所以来询问一个问题。
如果有因为不懂而问的比较傻的,还请见谅唉。
解决方案 »
- xp3安装iis6.0服务器
- 急,Asp.net中如何使用“MSCOMM32.OCX”控件进行串口通信
- app_code中的自定义控件
- session失效后,模态弹出窗口问题。分不多。请各位帮忙看看
- [求助]为什么在服务器端获取不到DataList模板列中动态生成的TextBox啊?
- gridview删除行,而不更新数据库,只是从gridview中删除
- |M|刚才在看旧贴的时候发现leohuang(LEO)给了很好的答案,但却没有给分,这里补上50分,再问个JS网页刷新定位问题(符合XHTML 1.0)
- .NET设置的问题.高手帮帮忙!!!!
- 两个问题:Freetextbox3.03有限制字符数?一条添加内容的SQL语句。
- 怎样在web form上添加不同的form
- 无法使用数据库依赖缓存的情况下,如何管理缓存
- C#调用IC卡读卡器DLL,不出现输入密码界面
如果由于其他原因一定要http的话,也可以采用websocket几百个长连接对服务器来说根本不是什么事
个人建议 搭建tcp服务器