goch是一個用 Go 寫的自架即時聊天伺服器。
它允許您在自己的基礎設施上運行即時聊天軟體。
您可以建立多個私人和公共聊天室,其中兩個或多個使用者可以同時使用。
對於通信,它使用 RESTful 端點、Websockets、NATS Streaming 和 Redis。
goch是 Gossip 的一個分支,添加了許多功能和修復。
要在本機上執行goch ,您需要在您的路徑上安裝並設定docker
、 docker-compose
和go
。下載/克隆專案後,執行./up
編譯二進位檔案並使用goch 、 NATS Streaming 和 Redis 執行 docker-compose 。如果沒有錯誤, goch應該在本機主機(連接埠 8080)上運行。
為了使伺服器運行,必須設定ADMIN_USERNAME
和ADMIN_PASSWORD
環境變數。在儲存庫中,它們分別設定為admin
和pass
,但出於安全原因,您顯然應該更改它們。
伺服器運行後,以下路由可用:
POST /admin/channels
:建立一個新頻道。您必須為通道提供唯一的名稱(通常是 ID),並且回應包含通道的秘密,該秘密將用於稍後連接到通道。應使用提供的管理憑證在伺服器端呼叫此端點。應保存回應以便稍後連接到通道。
POST /register
:在頻道中註冊使用者。為了註冊頻道,需要提供 UID、DisplayName、ChannelSecret 和 ChannelName。 (可選)需要提供使用者秘密,但如果沒有,伺服器將產生並傳回一個。
GET /connect
:連線到聊天並返回 WebSocket 連線以及聊天歷史記錄。需要提供 Channel、UID 和 Secret。可選地提供 LastSeq,它僅在 LastSeq(UNIX 時間戳)之後返回聊天歷史記錄。
其餘路線僅用作「助手」:
GET /channels/{name}?secret=$SECRET
:返回頻道中的成員清單。通道名稱必須作為 URL 參數提供,通道秘密作為查詢參數提供。
GET /admin/channels
:傳回所有可用頻道的清單。
GET /admin/channels/{name}/user/{uid}
:傳回使用者聊天中未讀訊息的清單。
goch已獲得 MIT 許可。檢查 LICENSE 文件以了解詳細資訊。
埃米爾·裡比奇