默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSD安卓端收到信息抛异常,可能是字符串过长,怎么解决?
阅读(32257) | 评论(3 收藏 淘帖
[size=15.0667px]03-07 12:01:01.805 28931-28931/com.hy.hyapp W/LocalUDPDataReciever: 【IMCORE】处理消息的过程中发生了错误.                                                                    com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 619 path $.from                                                                        at com.google.gson.Gson.fromJson(Gson.java:902)                                                                        at com.google.gson.Gson.fromJson(Gson.java:852)                                                                        at com.google.gson.Gson.fromJson(Gson.java:801)                                                                        at com.google.gson.Gson.fromJson(Gson.java:773)                                                                        at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:63)                                                                        at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:49)                                                                        at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:75)                                                                        at net.openmob.mobileimsdk.android.core.LocalUDPDataReciever$MessageHandler.handleMessage(LocalUDPDataReciever.java:137)                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)                                                                        at android.os.Looper.loop(Looper.java:163)                                                                        at android.app.ActivityThread.main(ActivityThread.java:6365)                                                                        at java.lang.reflect.Method.invoke(Native Method)                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:791)                                                                     Caused by: com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 619 path $.from                                                                        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1559)                                                                        at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1017)                                                                        at com.google.gson.stream.JsonReader.nextString(JsonReader.java:815)                                                                        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:418)                                                                        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:406)                                                                        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)                                                                        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)                                                                        at com.google.gson.Gson.fromJson(Gson.java:887)                                                                        at com.google.gson.Gson.fromJson(Gson.java:852)                                                                         at com.google.gson.Gson.fromJson(Gson.java:801)                                                                         at com.google.gson.Gson.fromJson(Gson.java:773)                                                                         at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:63)                                                                         at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:49)                                                                         at net.openmob.mobileimsdk.server.protocal.ProtocalFactory.parse(ProtocalFactory.java:75)                                                                         at net.openmob.mobileimsdk.android.core.LocalUDPDataReciever$MessageHandler.handleMessage(LocalUDPDataReciever.java:137)                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)                                                                         at android.os.Looper.loop(Looper.java:163)                                                                         at android.app.ActivityThread.main(ActivityThread.java:6365)                                                                         at java.lang.reflect.Method.invoke(Native Method)                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:791)

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK Server断开瞬间, iOS端发消息5条, 只收到2条应答回调下一篇:[已回复] MobileIMSDK 数据通信的协议怎么改成对 Protobuf 的支持?
推荐方案
评论 3
MobileIMSDK是基于UDP实现的,因为UDP是基于“包”的概念,所以长度肯定不是无限的。

具体的解决思想,你可以看看这个帖子里的讨论:
[已回复] MobileIMSDK的消息有大小限制吗?

有关UDP包大小的理论,你可以参考以下两篇文章:
UDP中一个包的大小最大能多大
不为人知的网络编程(六):深入地理解UDP协议并用好它
引用:JackJiang 发表于 2018-03-07 12:08
MobileIMSDK是基于UDP实现的,因为UDP是基于“包”的概念,所以长度肯定不是无限的。

具体的解决思想, ...

现在应该是底层有bug,比方说发一条群聊,有的手机就不抛异常,有的手机就抛这个异常,ios也没这方面问题。
引用:天然呆 发表于 2018-03-07 15:07
现在应该是底层有bug,比方说发一条群聊,有的手机就不抛异常,有的手机就抛这个异常,ios也没这方面问题 ...

你还是没有仔细看我发在2楼的文章,UDP的包到底应该有多长,没有一个明确地标准规定。当然,为了不武断地替开发者决定,MobileIMSDK把限制策略交给开者自已来决定,比如在发送数据时判定一长度,超过开发者允许的长度就用自已定义的策略处理。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部