不少政府與企業用來開發自家通訊軟體的開放標準通訊協定Matrix,經過超過9年的發展,現在終於推出最新2.0版本。Matrix 2.0加入多項重要的功能,包括滑動同步(Sliding Sync)、原生OIDC、原生群組語音通話,並且也能更快地加入聊天室等,使得運用Matrix開發的應用程式,也能夠跟上當前主流的通訊軟體的功能。Matrix 2.0的發展主要由Element貢獻,並已經在客戶端應用程式Element X中實作。

Matrix 2.0在效能、可用性和穩定性都大幅提升,官方以Rust實作了Matrix協定,在GitHub上開源matrix-rust-sdk,該SDK提供多項Matrix 2.0功能和改進,並且同時也是建構Element X的重要元件。

滑動同步是Matrix 2.0規範中的全新同步API,官方稱此API為該版本最大的更新。滑動同步API可以確保應用程式選擇,僅載入當前可見使用者介面最基本的資料。相較於Matrix過去的載入方式,滑動同步極大程度地提高效能和回應速度,特別是需要呈現大量資料,或是用戶參與多個活躍聊天室的情境。滑動同步解決了過去Matrix執行緩慢的操作,且確保無論在什麼情境,都能即時完成使用者的操作。

官方解釋,滑動同步的設計理念受即時通話軟體Discord架構啟發。在滑動同步的架構中,伺服器會計算一個有序的聊天室列表,由客戶端知會伺服器當前顯示的列表視窗,當檢視範圍發生改變時,伺服器便會發送更新給客戶端,使用者在列表中捲動,滑動的視窗上下移動,伺服器則會發送相對應的更新,因此取名為滑動同步。

matrix-rust-sdk同時實作滑動同步與Matrix 1.8目前所使用的Sync v2 API,而Element X則只實作滑動同步,為的是充分使用滑動同步API提供給快速的使用者介面。因此如果用戶要使用Element X,就必須執行支援滑動同步的家用伺服器。

Matrix 2.0現在也開始支援原生Matrix群組語音通話(MSC3401),Element已經實作了端到端加密且可擴展的群組語音/視訊通話。之前Element是按照嚴格的MSC3401規範實作。使用完整網格會議方式,讓每位參與者都與其他參與者通話,這種方式使會議去中心化,避免需要一個焦點伺服器。

但是這種方式有一個重大的缺點,由於需要重複傳送資料,因此會議的參與者數量被限制只能7或8人左右。要支援更多的人,Element必須尋求其他方法,最後採用了一個稱為LiveKit的Selective Forwarding Unit(SFU)實作,參與者的視訊和音訊會先被發送到SFU伺服器,再由SFU伺服器選擇性轉送給其他參與者,以降低網路頻寬需求和解決資料重複發送的問題,支援更多的視訊會議參與者。目前Element最新的通話功能,由MSC3401負責傳遞通話狀態、成員資格等高階訊號,LiveKit負責WebRTC訊號以及端到端加密。

Matrix 2.0現在也開始採用業界標準Open ID Connect(OIDC)作為主要認證方法,這提高了安全性和可維護性,目前Matrix伺服器實作Synapse以及客戶端Element X都已經更新,支援透過OIDC進行帳戶註冊和管理。

熱門新聞

Advertisement