AndroidPn服务端部分bug解决方案

目前推送的情况已经大致可以了,可以正常推送。但是要在实际生产中使用,要改进很多地方。

原本的版本,是不会对消息重新发送的。消息如果丢失,或者用户没有在线,消息也不会重新的发送。所以,这些问题都是要解决的。

网上也有很多的讨论,是关于这几种情况的。CSDN有个名为“大饼馒头蘸大米”的程序员,对这些问题的思路也不错,是采取的对未发送信息进行存库,并且用state来标记信息是否发送,来进行处理的。

本人是采取的另外一种方式,这种方式,是某位网友最早提出来的。对离线消息,就是发送后存库,同时要记录用户的信息,已便于进行下次登录的发送。对于发送出去,某种原因丢失的情况,是采取发送三次的情况(这思路是老大提出的),我的设计是,发送后,开启重发的线程,等待几秒,如果客户端有回应的话,这条就不需要再发。没回应就存下来,等下次连接上再发。

这里收集了一些androidpn的bug的解决方法:

http://blog.csdn.net/yhjsspz/article/details/11980635

http://blog.csdn.net/zranye/article/details/7802017

AndroidPn服务端部分bug解决方案

时间: 2024-11-02 23:29:24

AndroidPn服务端部分bug解决方案的相关文章

androidpn服务端整合mina出现异常

spring 的版本不一样标签使用的方式也稍有差距 这一次,为了在服务端加入Androidpn的东西,进行了不同的版本的整合 spring配置方式的改变,bug就会出现,整合就不顺利了 这一次就说一下mina在spring的配置问题 <!-- =============================================================== --> <!-- MINA --> <!-- ===============================

服务端API安全解决方案

由于server端和client端需要通信,所以api的安全性需要保证 1.完全开放的 一般只是查询,不能执行增.删.改的操作 裸奔的 <?php public function getGoodsList($params) { $where = [ 'cat_id'=>$params['cat_id'] ]; $goods = M('Goods')->where($where)->select(); return json_encode($goods); } 2.参数加密 参数按照

DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZeroMQ + QWorkers) 出炉了

[概述] 自从上次发布了[DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端]文章后,得到了很多朋友的支持和肯定.这加大了我的开发动力,经过几个晚上的熬夜,终于在昨天晚上,DEMO基本成型,今天再加入了QWorkers来做逻辑处理进程,进一步使得逻辑处理进程更加方便和高效.今天特意写篇blog来记录我的心得与大家分享. [功能实现说明] 沿用上次的草图 目前DEMO图上的功能都已经实现.下面谈谈各部分的实现. 通信服务, 由DIOCP实现,担当与客户端的通信工作

某页游erlang服务端广播算法效率好差,应该算是一个bug了吧

偶然得到一份erlang网页服务端的代码 不得不说写的非常优雅,文档也非常不错,但我看到他的场景管理中的广播算法,不得不说写的很漂亮,但效率非常低. 每次都全局遍历全部在线玩家在某个场景的玩具ID,这样的算法,我不知道一个服能撑起多少人,优化一下,场景服务管理在他服务中的玩家,NPC,MON,效率会提升好几倍,只是代码会稍微复杂一点,没他写的优雅了!! %% 获取要广播的范围用户ID get_broadcast_id(Q, X0, Y0) -> AllUser = ets:match(?ETS_

少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

相信大家都遇到过这样的问题,有手机浏览器的问题导致服务端SESSION读取不正常,目前在项目中的解决方法是采取H5手机本地存储唯一KEY解决的 代码片段 //定义json格式字符串 var userData = { name: "sankyu Name", account:"sankyu", level:1. disabled:true }; //存储userData数据 localStorage.setItem("userData",JSON.

oracle服务端与客户端字符集不同导致中文乱码解决方案

1.问题描述 用pl/sql登录时,会提示"数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果",具体问题是中文乱码,如下图 2.问题分析 不管错误信息中你的数据库字符集是什么,都是由于数据库服务端和你的客户端字符集不统一造成的,所以只要将客户端字符集改为和服务端字符集一致就能解决问题. 3.问题解决步骤 3.1查看服务端字符集 pl/sql里查询 select userenv('language') from dual 3.2查看客户端

服务端的sshd连接不上的解决方案

1. 确定网络畅通,通过ping服务端 2. 确定服务端的sshd服务启动,通过netstat -ltnp | grep 22 或者通过systemctl status sshd.service.如果没有启动,通过systemctl start sshd.service启动sshd 3. 如果还不能够连接上,查看/etc/ssh/sshd.conf配置文件,去掉PasswordAuthentication的注释,将后面的no改为yes,然后重新启动sshd服务,systemctl restart

PL/SQL Developer 连接 64位Oracle 服务端 解决方案

PL/SQL是32位程序,只能通过32位的Oracle驱动连接Oracle服务器.如果Oracle服务器是64位的,那么只能通过需要通过一个32位的Oracle客户端,来搭建连接. 到官网下载一个客户端:http://www.oracle.com/technetwork/topics/winsoft-085727.html .根据Oracle服务端的版本号选择,相应的 客户端 :instantclient-basic-win32-11.2.0.1.0.zip 保存到客户端任意路径下,例如D:\s

企业级工作流解决方案(八)--微服务Tcp消息传输模型之服务端处理

服务端启动 服务端启动主要做几件事情,1. 从配置文件读取服务配置(主要是服务监听端口和编解码配置),2. 注册编解码器工厂,3. 启动dotnetty监听端口,4. 读取配置文件,解析全局消息处理模型5. 注册服务端处理对象到容器. JsonRpcServerModule代码如下,见备注说明 [DependsOn(typeof(AbpKernelModule))] public class JsonRpcServerModule : AbpModule { public override vo