推聊:基于Android第三方推送服務的開源聊天系統(tǒng)
智能手機上的推送通知(Push)已經(jīng)被我們所熟知,在國內(nèi),有很多第三方的推送服務,那么,除了利用他們來進行推送通知,還能做些什么呢?這里就有人想到用推送服務來搭建一個聊天系統(tǒng)。
推聊概述 PushTalk Overview
推聊是一個基于極光推送的Android手機聊天系統(tǒng)。支持群聊與點對點聊天。當前包括Android客戶端與Java服務器端。3分鐘就可以整套系統(tǒng)跑起來。
開源項目官方網(wǎng)站
http://github.com/good-life/pushtalk
功能與特點
功能列表
- 頻道里群聊
- 與其他用戶點對點聊天
- 聊天支持文字、表情、URL等
- 創(chuàng)建頻道、加入頻道
- 注冊用戶(不需要密碼)
- 我的頻道
- 我的最近聊天
- 聊天記錄緩存
- 客戶端選擇聊天服務器、添加聊天服務器
特點
- 簡單到***的 http 聊天服務器:一個 jar 包跑起來
- 輕量級客戶端:聊天界面使用 Webview 的方式
- 下行消息推送基于 JPush(一個免費的第三方 Android Push 服務),上行消息采用 http 請求的方式實現(xiàn)
聊天服務器
推聊的服務器端使用 Java 語言編寫,基于最簡單實用的開源框架。
- http 服務器使用 Jetty:輕量級的 Java Servlet 容器。
- 數(shù)據(jù)庫使用 H2: 輕量級的 Java 內(nèi)存/文件數(shù)據(jù)庫。
- 頁面模板使用 Freemarker:輕量級的 Java 頁面模板引擎。
- 打包時集成為一個整體 jar 包(包含所有的依賴包)
要運行推聊服務器端,請在 github 文件下載頁 https://github.com/good-life/PushTalk/downloads/ 下載推聊服務器 jar 文件。
使用如下命令運行服務器:
java -Dfile.encoding=UTF-8 -jar pushtalk-server-with-dependencies.jar
注:實際的文件名后邊一般會加上一個版本號。
上述命令運行后:
- 一個 http server 啟動了,監(jiān)聽端口為 10010
- 瀏覽器里輸入 http://localhost:10010 則可以訪問到界面
- 要正確地運行服務器,需要通過客戶端訪問
推聊服務器默認使用 10010
端口??梢栽谏鲜雒詈笾付ㄊ褂昧硗獾亩丝?。比如以下命令指定使用 10011
來啟動推聊聊天服務器:
java -jar pushtalk-server-with-dependencies.jar 10011
Android 客戶端
客戶端運行,請在 github 文件下載頁 https://github.com/good-life/PushTalk/downloads/ 下載 Android apk 安裝到 Android 手機即可。
你也可以自己編譯 /client-android
項目之后安裝到手機。
客戶端默認內(nèi)置官方聊天服務器地址。也可以直接在客戶端添加新的服務器,選擇新的聊天服務器。
如果你有服務器資源,可以長期運行,歡迎你架設(shè)推聊聊天服務器,請?zhí)砑拥揭韵碌捻撁?。?jīng)過測試沒有問題,會被選擇預置到客戶端代碼里:
https://github.com/good-life/PushTalk/wiki/PushTalk-Third-Party-Servers
開發(fā)者支持
歡迎廣大開發(fā)者加入本開源項目,大家一起來不斷地豐滿、完善推聊。
本人是因為興趣業(yè)余時間來開發(fā)推聊,考慮到 IM 占用的時間太多,所以請諒解,不提供任何 IM 的溝通方式。希望大家以如下的方式交流:
- Email: pushtalk.org@gmail.com
- 項目Wiki: https://github.com/good-life/PushTalk/wiki
- 項目Bug: https://github.com/good-life/PushTalk/issues
- PushTalk頻道:
pushtalk
,報告bug
,新功能討論
等
代碼提交方式:請先提交Bug修復,把 diff 以文件方式發(fā)郵件給我。合作多次后,我可以把你加入到本項目貢獻者里來,你就可以隨時自由地提交代碼了。
你也可以自由地 fork 本項目,自己去發(fā)布新的版本。
推聊使用的開源協(xié)議:Apache License 2.0