默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK和Spring框架深度结合后出现的诡异问题
最近采用Spring框架将MobileIMSDK的Netty服务端代码重新结合包装了下,包装完成后,启动正常,然后和客户端进行通信,发现客户端登录时,服务端能收到响应,而后服务端响应消息客户端报socket close异常,导致后续数据传输失败,除了Netty目录下的代码,其他的均采用了spring框架来负责依赖注入,不晓得是哪里的坑

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:[已回复] MobileIMSDK的服务端主动发出的消息是否有重传机制?下一篇:[已回复] 求助!iOS端MobileIMSDK(v3版)登录请求发出后,服务端(v2版)没有回应

本帖已收录至以下技术专辑

推荐方案
评论 3
什么异常,把完整log贴出来分析一下

另外,你看看这个帖子对你有没有帮助《[已解决] 请教如何将MobileIMSDK集成到web项目里,作为服务器使用?
      奇怪的是服务端是没有异常的,在打开客户端后,点击登录,服务端能收到客户端发来的登录请求,然后服务端能正确处理业务,最后下发响应消息,然后就追踪到服务端说消息成功下发了,然后客户端那边报了socket close的异常,服务端这边由于设置了超时handler,所以在一定时间内检测到客户端的空闲时间超过设定的时间,报了超时异常,这时服务端主动掐断与服务端的连接。     由于对于这个底层的原理了解不是很深,所以不晓得,channel发送完的消息,拿到的ChannelFuture的监听器能够检测到消息发送成功,但是客户端却不知为何主动断连,这个消息被发到哪里了呢?在哪个阶段被丢弃的呢?客户端中端连接的原因也不明白。但是确实是我修改源码引起的,因为原本是没有这个问题的。
关于此问题我觉得还是自己闹了一个乌龙,由于我把底层协议层对于协议转换的GSON框架换成了阿里云的FastJson导致了qos字段在转换的时候出现问题(gson在解析fastjson序列化后的内容时,将qos的值转为了false),如果其他朋友遇到类似的问题可以排查下是不是客户端版本和服务端版本的协议转换所用的框架转换后的数据是否是一致的。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部