Foxtable(狐表)用户栏目专家坐堂 → 客户端OpenQQ发送长string,服务器偶尔会收不到。这个有办法妥协解决吗?


  共有1576人关注过本帖平板打印复制链接

主题:客户端OpenQQ发送长string,服务器偶尔会收不到。这个有办法妥协解决吗?

帅哥哟,离线,有人找我吗?
chen3728060
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
客户端OpenQQ发送长string,服务器偶尔会收不到。这个有办法妥协解决吗?  发帖心情 Post By:2017/3/29 9:40:00 [只看该作者]

我是卖便利店收银软件的,想给我的第三方收银软件,做一个手机查账的功能。我在阿里云上做了一个OpenQQ的服务器端,顾客的本地电脑装了一个客户端。

 

①老板通过手机向HttpRequest发送查询请求

②然后服务器端会通过OpenQQ向客户端发送一条查询指令,例如“库存数量|查第一页|每页50条”。

③然后客户端ReceiveMessage事件收到了,就SQL查询本地的erp软件的库存数量,提取出来生成临时表。然后遍历临时表的行,把表变成一条string,例如"苹果,5|雪梨,6|香蕉,7”。客户端把这条string 发送给服务器端

④服务器端ReceiveMessage事件收到了,把和这个string转为一个表的样子

⑤HttpRequest里,用CreateFromDataTable的方法生成网页给回老板

 

现在有个问题OpenQQ之间传输的string,如果太长,会容易出现收不到的情况。经过我多次测试,发现这样的事情。

 

①服务器端发客户端,99%是没问题。因为指令很短,就是“库存数量|查第一页|每页50条”

②客户端发服务器端,如果表里的行少于15行,转生成的string不会太长,传回去服务器端99%能收到

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170329092314.png
图片点击可在新窗口打开查看

 

③客户端发服务器端,如果表里的行超过15,或者生成的string比较长,客户端发送后,服务器端很容易收不到但是!我把客户端只有50k上传速度的联通网线拔了,换成上传有500k的电信光纤网线,或者是移动4G热点,就又可以稳定收到。
 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170329092502.png
图片点击可在新窗口打开查看

 

④开发的时候,服务器端和客户端都在同一个电脑里时,无论怎么发,多少行提取,string多长,都是100%的收发。

 

是不是string太长会容易丢失?但是我开发的其他软件,经常客户端一次过保存5000多新行的表(数据库在阿里云服务器),也能保存成功,没有行的丢失。这条string,好像也就400个字符,没几个KB,怎么会传输失败?

 

------------------

 

或者我想实现的这个移动端查询第三方收银软件数据,还有其他思路解决吗?

 

我有想过直接装服务器端在客户电脑,移动查询直接就在客户电脑的HttpRequest上生成。但是有个很大的问题,客户都是自己的小网线,什么移动 铁通 电信都有,没有固定公网ip,跟给他搞动态域名还要搞路由器端口映射,每个客户这样搞,我太痛苦了。而且客户电脑又不注意防毒,偶尔就中个病毒又要重新搞。

[此贴子已经被作者于2017/3/29 9:43:56编辑过]

 回到顶部