寫在開頭:其實這裡只是為了介紹 Gopusher Comet 你可以很容易的使用 http api 來構建實時聊天(比如這裡的 laravel-chat),通知推送應用。
之所以不是一個具體的聊天開源產品,是因為具體的需求往往是多樣的,這個chat不是為了讓你去使用,而是一種思路,讓你能透過Gopusher Comet
去只透過呼叫介面就能 很容易的 實現你自己聊天,網頁訊息推送等。
原始碼:https://github.com/Gopusher/laravel-chat
這是一個聊天應用,演示地址: https://chat.yadou.net, 支援單聊和群聊,目前demo中預設只加入群組1,具體的實現邏輯可以看原始碼實現。
所有的業務邏輯(邏輯層和路由層)採用Laravel實現,長連線採用Gopusher Comet(接入層)實現。除了Laravel外,還引入以下依賴:
- phpctx/ctx 一個Service服務模組化組織框架
- predis/predis Redis庫
安裝
-
首先需要安裝 Gopusher Comet 並進行配置
-
下載 Chat,並安裝
git clone https://github.com/Gopusher/laravel-chat.git 配置 .env composer install
其它
- 其實以前採用了自己的一個框架實現了一個版本,但是覺得還是 Laravel 使用的人更多,也更容易方便大家參考,所以就採用了Laravel實現了一版,他們都依賴了
Gopusher Comet
來維護與客戶端建立的長連線, - Gopusher Comet 是一個 開源 的 支援分散式部署 的 通用 長連線接入層服務,接管客戶端連線,支援叢集,提供了 API 供開發者呼叫。
- 除了能用於 聊天應用,你還能透過接入comet(接入過程比你想象中簡單)來用於如 網頁訊息推送,遊戲 等其他長連線場景下的應用,開發文件見 https://github.com/Gopusher/comet/wiki ,Gopusher QQ交流群 : 818628641
- 因為很多時候業務邏輯都很具體,每個產品的需求都會不同,所以這個原始碼沒有實現很漂亮的客戶端,只是為了展示怎麼實現Comet來實現一個分散式聊天,裡邊有分散式的comet路由保持相關的邏輯,不過因為開發時間倉促路由層和業務邏輯層沒有分太細。
本作品採用《CC 協議》,轉載必須註明作者和本文連結