分类 未分类 下的文章

关于网络延迟问题

服务器端使用了一套新的框架开发了对弈体系及相关服务,App端对弈首先迁移到了这套新的对弈体系下,从迁移后就有用户一直反馈超时负、断线负等各种问题,最初服务器端都以为是手机端网络不稳定导致的,也没细查。后来为了对弈互通,PC端也接入了这套对弈体系,出现很多用户上报超时负等各种问题。在PC客户端增加了提取日志功能,当用户反馈超时等问题时,提取下最近日志,通过日志分析,是网络延迟太大导致的问题,有的延迟回达到2分钟甚至更多,后来增加了心跳间隔上报机制,从上报的数据来开,有很多心跳延迟都很大的数据,可以确定问题是网络数据延迟导致的,针对这种网络延迟做了如下分析。
阅读剩余部分 –

关于打开多个USB摄像头的问题

  1. USB带宽由USB控制器决定;
  2. 电脑上不是每个USB口都独享一个USB控制器,可能多个USB口共用一个USB控制器;
  3. 共用一个USB控制器的所有USB口共用此USB控制器的带宽;
  4. USB2.0的设备由USB2.0驱动分配带宽,即使是接在USB3.0的口上;
  5. 台式机可以通过PCI-E的USB扩展卡来扩展出更多的USB口;
  6. 带有扩展坞接口的笔记本电脑可以通过扩展坞扩展更多的USB口;
  7. 使用USB HUB可以扩展多个USB口,但是无法扩展USB的带宽,仍然无法打开更多的USB摄像头;
  8. 带有雷电3接口的笔记本应该是可以通过雷电3接口扩展出更多的USB口(未测试);
  9. 可以尝试在USB3.0口上接USB3.0 HUB,使用USB3.0的摄像头(未测试);
  10. USB HUB需要外接电源型,防止供电不足;
  11. USB HUB需要购买质量较好的,测试过一个型号的几个外接电源USB3.0 HUB,有的口不能稳定拷贝数据,有的口不能识别2.0的设备,没有一个全部功能都好用的;
  12. 测试了belkin的USB3.0 HUB,非常稳定,价格较贵但好用。

基于Miniblink的WebBrowser控件CXMBWebCtrl

由于网站开启HTTPS导致客户端使用Windows的WebBrowser控件在XP系统下无法显示页面,查阅了浏览器内核相关资料后选择了开源小巧的Miniblink(官方主页https://weolar.github.io/miniblink)。

基于Miniblink封装了一个WebBrowser控件CXMBWebCtrl,基于控件CXMBWebCtrl写了一个简单的浏览器Demo,Demo代码下载地址:https://download.csdn.net/download/werocpp/11127189。

使用过程中遇到一些问题,记录如下:

  1. 作为MFC对话框子控件使用时接收不到键盘消息,这个只需要在控件的窗口处理过程函数中处理消息WM_GETDLGCODE即可;
  2. 超链接在新窗口中打开事件中有些URL获取不到,对于这种情况只能在本进程内打开此页面;
  3. 网页超链接启动本地应用程序,需要自己在回调函数中实现;
  4. 网页超链接下载文件需要自己实现,这里没有实现;
  5. cookies及localstoreage最好使用进程ID进行拼接存放路径,这里代码没有进行修改;
  6. wkeInitialize只需要调用一次,wkeFinalize不需要调用,这里代码没有进行修改;

控件类CXMBWebCtrl头文件如下:
阅读剩余部分 –

调试打印输出宏

调试程序时总是避免不了需要添加一些打印输出来确定问题,这里写了一个简单的调试打印输出宏。又检查了一遍代码,发现有的注释意义写错了,有的注释是复制后未进行修改,写代码时还是需要多注意细节。
阅读剩余部分 –

支持空间自动增长的可变缓冲区类CXVarBuf

很久以前写的支持自动增长的可变缓冲区类,当时处理数据时每次都需要申请释放,就写了这么一个类。后来才发现是自己重复制造了一个不怎么样的轮子,STL库中的string类不仅仅可以用作字符串类,还可以存放二进制数据,用起来更加简单方便,还是需要多看一些开源的代码,拓宽自己的眼界,可惜一直以来看的都不是很多,以后希望能够加强。

此类中使用了一个句柄来隐藏内部数据,站在使用者的角度去考虑问题,应该是只需要最少量的功能完备的简单接口,而不需要知道具体的数据及组织方式。
阅读剩余部分 –

分类目录

文章归档