查看完整版本: Android彷Line聊天室架構
頁: [1]

jackyo04 發表於 2018-11-8 09:51 AM

Android彷Line聊天室架構

因小弟沒做過聊天室這東西,都是物連網控制類的居多,所以想請教一下有沒有就相關項目的大大,目前是要研究"一對多"的聊天室

目前是測試階段,小弟規劃如下:
  1. 一個固定IP(或免費網路空間)
  2. 兩台Android手機
  3. 兩個資料庫(關聯起來),一個記ID相關資訊,一個根據ID衍生出聊天內容(此位置負責離線溝通)
  4. 兩個SQLite,客戶端只要一個(紀錄聊天內容),主機端則是類似第3點一樣(分別紀錄)
  5. 聊天界面(已完成),分客戶端與主機端,客戶端就是一個簡單的對話窗口,主機端則是要根據ID載入不同的聊天訊息

根據上面五點來討論
第一點:固定IP因為沒架過站,完全不清楚該如何動手,所以先用免空代替,如果有大大知道方法,請提供一下,謝謝
第二點:方便測試用而已
第三點:紀錄ID相關訊息是基本條件,聊天內容則是會紀錄離線時所傳送的資訊,跟SQL做比對,然後刪掉共通的訊息(免費空間容量有限..)
第四點:因為是一對多的條件下,所以客戶端只須存取與主機端的聊天訊息就好,其餘狀況暫不考慮;主機端則是要根據客戶而顯示該聊天訊息
第五點:略..

由於未來可能會有商品機制,所以另外想問一下,一些遊戲的付款方式(用手機帳單繳費,信用卡付費...等),這部份是該怎麼實做?有相關的API嗎?對這方面不是很清楚......<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

kwj 發表於 2018-11-11 01:37 AM

本帖最後由 kwj 於 2018-11-11 01:37 AM 編輯

具體來說固定 IP 的服務要用來做什麼?雖然可以直接在 Google 或 AWS 等雲端服務上開具有固定 IP 的 VM,不過根據需求可能會有更好的選擇。

Android 的付費方式很容易就能搜尋到吧,例如 Google Pay API

jackyo04 發表於 2018-11-12 08:28 AM

kwj 發表於 2018-11-11 01:37 AM static/image/common/back.gif
具體來說固定 IP 的服務要用來做什麼?雖然可以直接在 Google 或 AWS 等雲端服務上開具有固定 IP 的 VM,不 ...

因為Google有提供免費的空間Firebase空間有1G可以測試,但考慮到未來維護,之後會自己架設伺服器,資料庫也自己創見,所以才會需要一組固定IP

原來那個就叫Google Pay API,我以為要先去各大電信找尋相關的API再跟Google pay API做整合.....<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

kwj 發表於 2018-11-12 08:20 PM

jackyo04 發表於 2018-11-12 08:28 AM static/image/common/back.gif
因為Google有提供免費的空間Firebase空間有1G可以測試,但考慮到未來維護,之後會自己架設伺服器,資料庫 ...

在那之前...APP 正式上線前,會直接從 Firebase 移到自建的伺服器嗎,還是會考慮等到 Firebase 無法滿足營運需求時才移走?若是後者的話,個人認為在根本不知道會不會發生「Firebase 無法滿足營運需求」前,根本不需要考慮這個問題。最多只需要事先考慮,如果要移走的話會不會產生什麼困擾而已。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

jackyo04 發表於 2018-11-13 08:23 AM

kwj 發表於 2018-11-12 08:20 PM static/image/common/back.gif
在那之前...APP 正式上線前,會直接從 Firebase 移到自建的伺服器嗎,還是會考慮等到 Firebase 無法滿足 ...

因為這個要測試一年,不知道客戶大約數量,也不知道是否有達到使用需求,所以才想說要自己來架設,因為只是要儲存純文字而已,不是網頁,未來怕會加入圖片檔...
說個最實在的...沒有具體收益,公司不會花這筆{:12:}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

codewice 發表於 2018-11-15 01:58 AM

這部分我沒有實際的開發經驗,但如果要研究的話,我會想辦法架個 XMPP server 起來,再找現成的 XMPP client 來測試。確定動起來了,才開始寫自己的 client side,或是改 server side 的架構。

wkx101 發表於 2018-12-8 10:46 PM

簡單地看了一下,如果是商業用途的話,申請公司用的LINE帳號不好嗎?至於原因則是如果你自已想研究這個做法,我覺得OK就去做吧。畢竟做東西不困難,困難的是怎麼維護,給人用的程式,突發狀況是很多的。

然後關於架伺服器,沒有相關知識的話,不推薦自己來。因為伺服器一旦公開就會有很多人跑來晃,而你根本不知道他來幹嘛的,所以雲端服務是真的好選擇。至於錢,你該去跟你的老闆要,畢竟這個東西還是要用給公司用,你老闆該付錢,他不願意你也別弄,不知道具體收益,那就作預測收益,把作這個東西的利點提出來,你別自己弄這個預測收益的東西,叫提出這個想法的人來做。當然你自已就是老闆的話,付錢這段你可以當作沒看到

然後對不起,我現在人在國外工作,所以我想錯了,請無視這段。你要做的應該是一對一聊天室,然後可以多間並存的聊天室軟體吧。這樣的話,表只需要一個,聊天室ID,跟聊天室內容的檔案紀錄位置,事實上,你把聊天室紀錄寫到DB去沒有比較好用,然後不管誰發言,發言後保存起來,因為每次保存的關係,不用去做剃除共通的部分。要是擔心順序錯亂,那就加上時間戳一起保存,畢竟一個聊天室一個檔案,客戶端之間不會混淆。當然你要是嫌聊天資料一多,會造成讀取變慢問題,你可以分日期保存檔案,然後一個聊天室一個資料夾。或者你要是不考慮不同端末的同步問題的話,可以直接保存在客戶端。

最後,我不知道你想要做出甚麼樣的東西,而在我的觀點來看,與其寫成APP,不如做成網頁比較簡單,最後的最後我只是個寫網頁的,能給的意見就只有這樣。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]