上篇讲了androidpn的client端,这篇该讲一下我使用androidpn-server端的笔记了。
这里我使用的androidpn是tomcat版的,由不知哪位大神移植并修复了部分bug的版本。地址在:https://github.com/msdx/androidpn/tree/master/androidpn-server-bin-tomcat。直接在eclipse-j2ee中导入就可以了。
在我fork的这个项目里,我主要修改了一点小问题。
1、客户端断网或关机时,服务端session没关闭的问题。
参照网上的方法,修改了org/androidpn/server/xmpp/net/XmppIoHandler.java的sessionCreated方法,添加了一句:
session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 180);见:https://github.com/msdx/androidpn/commit/1d654a8459648273df1a1654a5e8d8d7ff37d770
2、log文件名的拼写错误。
这个是在resources/log4j.xml中配置中,把<param name="File" value="../logs/adnroidpn.log" />改为<param name="File" value="../logs/androidpn.log" />即可。
不过后来为了把它的log与tomcat的log区分开来,我又配置为把它们放在logs/androidpn的文件夹里。修改见:https://github.com/msdx/androidpn/commit/77671ad66f299fbbe0991fece190ed67109b05b0和https://github.com/msdx/androidpn/commit/a661180d169112ea41606ea7ef6c7d59286e5cc6。