出發點: 我不贊同手機應用會走PC機基於瀏覽器的路線,手機基於html5可以實現很多Web APP,但是一般還是以WebView方式去實現一個應用並以一個表徵圖作為入口而不是通過輸入網址,所以手機應用很方面潛入IM功能擷取到即時的互動資訊。
實踐過程: XMPP伺服器端採用開源的openfire+sqlserver 2005, 手機端Android基於asmack庫,ios基於object-c的xmpp庫實現。
1. 解決資料庫無法訪問的問題
java.sql.SQLException: Network error IOException: Connection refused: connectat net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:385)at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)at java.sql.DriverManager.getConnection(Unknown Source)at java.sql.DriverManager.getConnection(Unknown Source)at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)Caused by: java.net.ConnectException: Connection refused: connectat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.PlainSocketImpl.doConnect(Unknown Source)at java.net.PlainSocketImpl.connectToAddress(Unknown Source)at java.net.PlainSocketImpl.connect(Unknown Source)at java.net.SocksSocketImpl.connect(Unknown Source)at java.net.Socket.connect(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:255)at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:310)... 8 more
解決方案: 1. 開啟 /Microsoft SQL Server 2005/組態工具/目錄下的SQL Server Configuration Manager,選擇mssqlserver協議, 然後右邊視窗有個tcp/ip協議,設定IP標籤頁裡的ip/all預設連接埠為1433,然後啟動它,重啟sqlserver服務。
2. cmd >net start mssqlserver
3.在openfire啟動後的Launch Admin設定資料庫的連結字串(此時不需要指定連接埠號碼了)
JDBC驅動程式類:net.sourceforge.jtds.jdbc.Driver
資料庫URL: jdbc:jtds:sqlserver://dell/openfire;appName=jive
2. 解決XMPP用戶端asmack庫中傳檔案失敗的問題