<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Presence on BenzHub</title><link>https://benzhub.github.io/tags/presence/</link><description>Recent content in Presence on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Sun, 18 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/tags/presence/index.xml" rel="self" type="application/rss+xml"/><item><title>Supabase Realtime Presence 線上狀態：誰在線上與 typing | Supabase 完整教學</title><link>https://benzhub.github.io/post/supabase/029-realtime-presence/</link><pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/supabase/029-realtime-presence/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;上一篇的 &lt;strong&gt;Broadcast&lt;/strong&gt; 幫我們把「稍縱即逝的高頻互動」做到毫秒級即時。這一篇要解決協作場景裡另一個經典需求——&lt;strong&gt;「現在有哪些人在線上？」&lt;/strong&gt; &lt;strong&gt;Presence（線上狀態）&lt;/strong&gt; 是 Supabase Realtime 的第三種能力：每個客戶端用 &lt;code&gt;channel.track(state)&lt;/code&gt; 登記自己的狀態，Supabase 底層用 &lt;strong&gt;CRDT&lt;/strong&gt; 在分散式環境自動同步這份共享名單，你只要監聽 &lt;code&gt;sync&lt;/code&gt;／&lt;code&gt;join&lt;/code&gt;／&lt;code&gt;leave&lt;/code&gt; 事件、用 &lt;code&gt;presenceState()&lt;/code&gt; 讀取，就能做出線上頭像、參與者列表與 &lt;strong&gt;typing&lt;/strong&gt; 打字指示。你也會學到用 &lt;code&gt;config: { presence: { key } }&lt;/code&gt; 讓同一人的多分頁多裝置&lt;strong&gt;去重&lt;/strong&gt;，以及人數上限與 &lt;code&gt;track&lt;/code&gt; 頻率的效能注意事項。&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item></channel></rss>