默认

[已解决] MobileIMSDK server和java版Demo死机的问题

查看数: 48526 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-03-02 21:06

正文摘要:

原想把Server以ServletContextListener 形式与Web应用集成,但用java版Demo测试时总是死机。直接使用Server的Demo,java版Demo也会死机只是频率低了,不知什么原因。两个图片分别是死机时的java客户端和服务器的日志 ...

评论

JackJiang 发表于 7 年前
引用:盛涛 发表于 2017-03-03 13:01
不管如何,感谢您认真的态度,并表达对您技术能力的敬仰。

互相学习,过奖了
JackJiang 发表于 7 年前
引用:盛涛 发表于 2017-03-03 13:11
刚试了下,果真如此,感谢

能解决就好
盛涛 发表于 7 年前
刚试了下,果真如此,感谢
盛涛 发表于 7 年前
不管如何,感谢您认真的态度,并表达对您技术能力的敬仰。
JackJiang 发表于 7 年前
虽然你绕来绕去我没看明白你的精确表述,不过,我可以很有把握的告诉你,卡住应该是客户端卡住了。

客户端卡住的原因是:
因为Swing这种GUI程序,UI线程调度跟后台线程交叉进行,是有发生死锁的风险(至于为什么,这就需要对Swing非常精通才能理解),也就是那段把log显示到JTextPane的代码导致的,你把log显示到JTextPane的代码注释掉或改进直接输出到控制台下,应该就不会卡了。

写这个demo我为了简化理解,没有处理这个多线程的风险而已,最佳实践是:有Log输出的时候不应该由网络后台直接调用ui显示方法,而应该搞一个中间队列,一个生产一个消费,两边各自的线程不会有直接交叉,就不会有卡住风险了。不信你试试
JackJiang 发表于 7 年前
引用:盛涛 发表于 2017-03-03 10:23
刚试了下,直接运行Demo服务器和java客户端Demo没有再现上面现象。但用Demo服务器加上java客户端Demo源码编 ...

你这说的到底是什么跟什么,我也没分清。
你把要表述的内容整理一下呢,到底是什么跟什么。
盛涛 发表于 7 年前
是客户端卡住
盛涛 发表于 7 年前
刚试了下,直接运行Demo服务器和java客户端Demo没有再现上面现象。但用Demo服务器加上java客户端Demo源码编译后的程序确实有上面现象。而且奇怪的是前者分配的id为17170等,后者分配的是10001.
JackJiang 发表于 7 年前
引用:盛涛 发表于 2017-03-03 09:47
JVM没有崩溃,是java客户端程序卡住,关闭按钮什么的无法操作。客户端登陆后应该进入主窗口,程序卡在登录 ...

我没看明白你到底是客户端卡住还是服务端卡住。
盛涛 发表于 7 年前
JVM没有崩溃,是java客户端程序卡住,关闭按钮什么的无法操作。客户端登陆后应该进入主窗口,程序卡在登录窗口中,如上图。jdk1.6 32位。开发机是win7 32位,服务器和客户端暂时在开发机运行。
JackJiang 发表于 7 年前
你的log上看不出异常。

你说的“死机”是什么情况?JVM崩溃?还是程序卡住?

另外,你需要列出你的java详细版本(包括是32位还是64位),还有windows的详细版本(包括是32位还是64位)。我帮你诊断看看。

返回顶部