原创 XMPP 服務器 Openfire 的 Emoji 支持問題(進行部分修改)

當前最新版3.9.3已經可以支持Emoji  -----------------------------------------------------------------------------------------------

原创 openfire插件最佳實踐(四)離線消息推送ios服務器

要實現離線消息推送服務器端 閱讀openfire源碼後發現,如果要實現離線消息推送服務器端,我們必須找到 (1)接收信息廣播,並且經過一些列的處理(和源代碼相同邏輯),最終到達我們要進行推送的邏輯 (2)在存儲離線消息的位置發出

原创 一些問題思考

時間比較緊迫,並沒有深入思考。問題和總結如下: (1)應用協議多,改造接口多,服務器多,導致端開發人員常常使用錯誤的接口或者服務器。 解決:完成協議、接口、服務器說明文檔 (2)由於端和服務器開發語言不同,方案不同,導致聯調時或者新人來開

原创 openfire mysql 轉mongo 註冊行爲性能測試及其他

測試同學使用tsung測試openfire時發現註冊併發數過低,同事經過測試認爲數據庫是最大瓶頸,建議將mysql數據庫改造成mongo數據庫。 首先嚐試改造了ofUser表相關操作,使註冊邏輯整體走mongo: 改造涉及文件如下: 在

原创 JavaMail: Access to default session denied

openfire 插件中使用javamail 發送郵件時有如下問題發生: Access to default session denied 對這個問題的詳細解釋如下: http://stackoverflow.com/questions/

原创 使用task來控制不進行重複加載

相對handler而言,我更喜歡使用task進行異步處理。在我寫數據分頁加載時發現了一個問題: 當網絡不穩定時,用戶可能會多次上滑,這樣就會導致去服務器端請求相同的數據。使用static boolean值進行處理是一種很噁心的方式,在思考

原创 上傳服務器高級別漏洞:任意文件上傳導致服務器可被操控漏洞

攻擊者要想成功實施文件上傳攻擊,必須要滿足以下三個條件: 1.可以上傳任意腳本文件,且上傳的文件能夠被Web服務器解析執行,具體來說就是存放上傳文件的目錄要有執行腳本的權限。 2.用戶能夠通過Web訪問這個文件。如果文件上傳後,不能通過W

原创 Webview 圖片異步加載及bug解決

在項目中新聞顯示需要使用圖片的異步加載,並且在加載圖片前和加載圖片失敗時顯示默認圖片。 關於webview中圖片的異步加載的思路如下: 方案一:由前端同學全權負責(使用js實現異步加載) 方案二:android端進行處理 (1)  從相應

原创 javamail linux 下報錯javax.mail.MessagingException: 500 Error: bad syntax

首先在Linux命令行中查看hostname #hostname xxxxxx #hostname -i 未知 則說明問題出在這裏, 當調用到下面的代碼時會報錯   InetAddress localHost = InetAddre

原创 openfire插件最佳實踐(三) 用戶加入指定羣組功能

忽然要實現這樣一個功能,完全沒頭緒還是看一下openfire的源碼吧,發現room部分的服務器端可以直接將用戶加入羣組,只要發送請求 http://jabber.org/protocol/muc 那麼我們可以利用這個請求: 依舊是使用

原创 android適配問題

做了半年android,遇到不少適配問題。 適配問題分兩種,一種是各個版本間適配,一種是屏幕分辨率適配。 下面我們就針對這兩種適配分別進行說明。作爲一個菜鳥,很多理解可能不到位,請大家指正。 關於各個版本間適配: android 在不斷更

原创 openfire 登陸 mysql轉mongo性能測試及性能提升

登陸要修改的表: OfPresence、OfRoster、OfRosterGroups、OfUserFlag、OfUserProp Mysql遷移到mongo數據庫功能已完成,爲了進一步提高性能,考慮以下幾個方面: (1)  確認ind

原创 Android國際化資源文件自動化生成工具

根據http://www.tuicool.com/articles/MFbIRf 提供的方案進行了修改 國際化是一個痛苦的過程,不斷修改文案的國際化更加痛苦 爲了減輕痛苦,特意製作了以下工具, 由一個人來維護這份文檔並使用工具生成所需的

原创 mysql導入導出數據,表結構等

命令行下具體用法如下:  mysqldump -u用戶名 -p密碼 -d 數據庫名 表名 腳本名;    1、導出數據庫為dbname的表結構(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)    mysqld

原创 This application has requested the Runtime to terminate it in an unusual way

搭建Android開發環境時,一切都就緒,但是在start AVD時,遇到這個問題: This application has requested the Runtime to terminate it in an unusual way