基於XMPP搭建手機聊天應用

出發點: 我不贊同手機應用會走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: connect
	at 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: connect
	at 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庫中傳文件失敗的問題

         





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章