它為你做了乜嘢
- 訊息和表情回應會立即出現喺對方手機和你嘅其他裝置上。
- 離線嘅手機重新上線後會補收所有訊息,唔留空缺。
點樣運作
每個App都與伺服器保持一條经過認证嘅 WebSocket 連接。你傳送訊息時,伺服器先把它寫入資料庫,然後才發布事件。多個伺服器進程并行運行,通過共享嘅發布/訂閱通道相互傳递事件,因此哪個進程持有接收方嘅連接,就由哪個進程投递。
如果接收方離線,推送通知會唤醒他嘅手機,App重新連接時會從重放日志中補收。喺端對端加密嘅聊天中,这整個過程中傳递嘅係伺服器無法讀取嘅加密信封。
底層技術
WebSocket · Node.js · TypeScript · PostgreSQL · Redis
常見問題
冇網路時傳送訊息會怎樣?
網路恢複後App會自動傳送。伺服器一收到,就會喺通知任何人之前先保存。
伺服器會保存加密訊息多久?
直到接收方嘅每部手機都收到副本為止,最长 30 天。