我想開發與渠道實時聊天,這些都是我的需求:實時聊天
- PHP後臺管理網站
- Redis作爲會話和數據主存儲器
- 發佈/訂閱將郵件僅發送給頻道的感興趣用戶
- 一個WebSocket連接,用於發送和接收郵件。
- (可選)要的NodeJS使用大NPM包,比如時間同步或socket.io
我看到兩種不同的架構來實現這一目標:
與Socket.io
與Crossbar.io
這是我的問題:
- 哪個架構,我應該選擇?爲什麼?
- 關鍵是無法從客戶端獲取用戶標識,因爲它可能格式錯誤。因此,在第一個體系結構中,我認爲每個套接字消息都應該附加來自cookie的PHPSESSID值,並在服務器端從Redis檢索PHP會話。我是對還是有更好的方式來獲取用戶ID?
- 我不知道在第二個架構中獲取用戶ID是否可以以不同方式完成?
編輯:
我選用Crossbar.io,因爲它是非常強大的,允許實時溝通很多不同語言的應用程序。經過學習的例子,我想出了這個:
在每個登錄用戶已經在數據庫中生成密鑰。
PHP客戶端(高速公路)連接到服務器交叉開關和註冊自定義WAMP-CRA認證
用戶的瀏覽器連接到服務器交叉開關和受到挑戰。 Secret和auth_id(用戶標識)從頁面加載時從DB加載,因此它可以完成挑戰併發送響應。
PHP認證者在DB中爲用戶搜索,提供的密碼和ID等於auth_id。如果有,則它會成功驗證 會話。現在我們可以相信auth_id是真正的用戶ID。
這是我的問題:
如何,我可以得到AUTH_ID上訂閱?
我還添加了cookie認證,並在認證後記住瀏覽器。但是當我在Chrome DevTools中查看時,本地存儲中有任何cookie或值。即使清除緩存後,我的瀏覽器仍然記得Crossbar。我想知道它有可能嗎?
EDIT2:
也許我被誤解,但主要問題是選擇合適的架構和獲得信任的用戶ID。沒有注意到,所以我頒發獎金,之後我被低估了。我讀了很多實時應用程序,最後決定使用Crossbar.io,所以我編輯了與它相關的問題。然後人們開始投票,提出另一個架構,但沒有真正回答我的問題。畢竟我設法自己做,並提出了我的答案。
你是什麼意思「PHP後端來管理網站」?我認爲您的聊天HTML界面並不需要由PHP後端提供服務。然後它變得更輕,您可以使用nodejs或RatchetPHP後端提供聊天服務器,以及HTML + js + autobahnjs前端。 – Alcalyn
@Aalyn聊天只是網站的一小部分,我想從我的PHP框架管理用戶,消息和其他東西。 –
有太多可能的答案,或者對於這種格式來說,好的答案太長。請添加詳細信息以縮小答案集或隔離可以用幾個段落回答的問題。我建議你找一個開發論壇(也許[Quora](http://www.quora.com/Computer-Programming?))來解決一般問題。然後,如果您有特定的編碼問題,請回到Stack Overflow,我們很樂意提供幫助。 –