Realtime subscriptions trong Supabase: Tăng tốc ứng dụng web của bạn ngay lập tức

25/02/2026 P T P Chung 7 phút đọc 0 bình luận

Realtime subscriptions trong Supabase

Supabase là một nền tảng Backend-as-a-Service (BaaS) mã nguồn mở, cung cấp cho nhà phát triển một giải pháp toàn diện để xây dựng ứng dụng web và di động. Một trong những tính năng nổi bật của Supabase là khả năng hỗ trợ realtime subscriptions, cho phép ứng dụng của bạn phản hồi tức thì khi dữ liệu trong cơ sở dữ liệu thay đổi. Điều này mở ra vô số cơ hội để tạo ra trải nghiệm người dùng động và tương tác.

Realtime subscriptions là gì?

Realtime subscriptions trong Supabase cho phép ứng dụng của bạn lắng nghe và phản hồi các thay đổi xảy ra trong cơ sở dữ liệu PostgreSQL. Khi có bất kỳ sự thay đổi nào (INSERT, UPDATE, DELETE) trên bảng được theo dõi, Supabase sẽ tự động gửi thông báo đến tất cả các client đang lắng nghe. Điều này giúp loại bỏ nhu cầu polling liên tục từ phía client, tiết kiệm tài nguyên và cải thiện hiệu năng.

Cách hoạt động

Supabase sử dụng PostgreSQL's built-in replicationWebSockets để thực hiện tính năng realtime. Khi bạn tạo một subscription, Supabase sẽ thiết lập một kết nối WebSocket giữa client và server. Mọi thay đổi xảy ra trên bảng được theo dõi sẽ được ghi lại trong PostgreSQL's replication stream, sau đó được chuyển đổi thành các sự kiện và gửi qua WebSocket đến client.

Thiết lập Realtime subscriptions

Để bắt đầu sử dụng realtime subscriptions, bạn cần thực hiện một vài bước đơn giản:

1. Bật tính năng Realtime: Truy cập vào Dashboard của Supabase, chọn project của bạn, sau đó vào phần "Database" và bật "Replication". 2. Chọn bảng để theo dõi: Trong phần "Replication", chọn các bảng bạn muốn theo dõi thay đổi. 3. Cấu hình quyền truy cập: Đảm bảo rằng các row policies được thiết lập chính xác để kiểm soát ai có thể xem dữ liệu nào.

Ví dụ thực tế

Giả sử bạn đang xây dựng một ứng dụng chat. Khi có tin nhắn mới được gửi, tất cả các client đang mở phòng chat đó cần được cập nhật ngay lập tức. Với realtime subscriptions, bạn có thể dễ dàng thực hiện điều này:

import { createClient } from '@supabase/supabase-js'

const supabase = createClient('https://your-project.supabase.co', 'your-anon-key')

const channel = supabase.channel('public') .on('postgres_changes', { event: '*', schema: 'public', table: 'messages' }, (payload) => { console.log('New message:', payload.new) }) .subscribe()

Trong ví dụ này, mỗi khi có thay đổi xảy ra trên bảng messages, hàm callback sẽ được gọi và bạn có thể cập nhật giao diện người dùng tương ứng.

Các loại sự kiện

Supabase hỗ trợ nhiều loại sự kiện cho realtime subscriptions:

Quảng cáo

300x250 In-Content Advertisement

- INSERT: Khi một row mới được thêm vào bảng. - UPDATE: Khi một row hiện có được cập nhật. - DELETE: Khi một row bị xóa khỏi bảng. - BETWEEN: Khi bạn muốn theo dõi nhiều loại sự kiện cùng lúc.

Quản lý channel

Channel trong Supabase là một khái niệm quan trọng giúp bạn tổ chức và quản lý các subscription một cách hiệu quả. Bạn có thể tạo nhiều channel khác nhau cho các phần khác nhau của ứng dụng. Ví dụ, bạn có thể có một channel cho tin nhắn chat, một channel khác cho cập nhật trạng thái người dùng, và một channel nữa cho thông báo hệ thống.

const chatChannel = supabase.channel('chat-room-123')
const statusChannel = supabase.channel('user-status')

Xử lý lỗi và reconnect

Khi làm việc với realtime subscriptions, việc xử lý lỗi và reconnect là rất quan trọng. Supabase cung cấp các sự kiện giúp bạn quản lý trạng thái kết nối:

channel.on('postgres_changes', { event: '*', schema: 'public', table: 'messages' }, (payload) => {
  console.log('New message:', payload.new)
})
.on('reconnect', () => {
  console.log('Attempting to reconnect...')
})
.on('error', (error) => {
  console.error('Error occurred:', error)
})
.subscribe()

Tối ưu hiệu năng

Để đảm bảo ứng dụng của bạn hoạt động mượt mà, hãy xem xét các điểm sau:

- Chỉ theo dõi những bảng cần thiết: Tránh theo dõi quá nhiều bảng không cần thiết. - Sử dụng row policies: Hạn chế dữ liệu được gửi đến client chỉ những gì họ được phép xem. - Quản lý subscription: Hủy subscription khi không còn cần thiết để giải phóng tài nguyên.

Kết luận

Realtime subscriptions trong Supabase là một công cụ mạnh mẽ giúp bạn xây dựng các ứng dụng tương tác và phản hồi nhanh chóng. Bằng cách tận dụng PostgreSQL's replication và WebSockets, Supabase cung cấp một giải pháp realtime đơn giản nhưng hiệu quả. Dù bạn đang xây dựng một ứng dụng chat, một bảng điều khiển thời gian thực, hay một hệ thống hợp tác, realtime subscriptions sẽ giúp nâng trải nghiệm người dùng lên một tầm cao mới.

Hãy bắt đầu thử nghiệm với realtime subscriptions trong dự án Supabase của bạn và trải nghiệm sức mạnh của dữ liệu thời gian thực!

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!