- 前端使用的Socket框架 AndroidAsync
框架地址:https://github.com/koush/AndroidAsync
2.后端使用的Socket框架 Workerman
TP 使用规则 https://www.kancloud.cn/manual/thinkphp5/235128
使用流程

众所周知移动端的网络是不稳定的,所以经常会出现网络波动导致Socket断开在重连
问题一:在Socket断开重新连接时,消息缓存池中存在的消息有时候想客户端发送,有时候不发送。
原因:在后台 wokerMan所有的连接的并不是在一个进程中,所以有的时候回客户端发送消息
解决方法:在连接成功之后向服务器发起通信 告知服务器连接 服务器遍历缓存池 同时服务器通过Socket向客户端发送消息
问题二:在Socket重新连接时连接多次
原因:在socket断开时 客户端知道 但是服务之并不知道 当前连接已经断开 ,所以在重新连接的时候服务器的此条连接已经存在,所以请求失败。
解决方法:在重新连接的时候通知服务器需要关闭的连接id
问题三:客户端由于不知名原因未收到服务器发送的消息
解决方法:添加一个按钮用来同步socket缓存池中的消息
网友评论