실시간 구독
표마다 켜야 한다는 것과, 접근 규칙이 실시간에도 걸린다는 것.
실시간 구독
wss://<ref>.<zone>/realtime/v1?apikey=<공개 키>
순서
1. 접속하면 ready가 와요
2. {"type":"subscribe","channel":"table:notes"}
3. 그 표가 바뀌면 change가 와요
반드시 먼저 해야 하는 것
표마다 실시간을 켜야 해요. 켜지 않은 표는 조용해요.
set_realtime { ref, table: "notes", enabled: true }로 켜고, list_realtime_tables로 켜진 표를 확인해요.
SQL로는 Supabase에서 쓰던 문장 그대로 돼요(SQL 편집기, run_sql, 마이그레이션):
alter publication supabase_realtime add table notes;나머지 SQL이 끝난 뒤 그 표의 실시간이 켜지고, drop table notes로 쓰면 꺼져요. public 스키마의 표만 돼요.
보이는 것만 와요
변경 알림도 접근 규칙을 통과해야 전달돼요. 공개 키로 못 읽는 줄은 실시간으로도 오지 않아요.
그 밖
{"type":"broadcast","channel":"room:1","payload":{...}}: 사람 사이 메시지
{"type":"presence","channel":"room:1","state":{...}}: 누가 접속해 있는지
broadcast와 presence 둘 다 그 채널을 먼저 subscribe 해야 받아요.
안 하면 error로 "먼저 subscribe 하세요"가 와요.
설정과 비공개 채널 규칙
get_realtime_settings 켜짐, 공개 채널 허용, 한도
set_realtime_settings 바꾸기 (준 값만, 소유자·관리자)
list_realtime_policies realtime_messages 표의 규칙
create_realtime_messages_table 규칙을 적을 표 만들기
add_realtime_policy 규칙 틀 더하기 (signed-in-read | signed-in-write | own-channel)allow_public을 끄면 비공개 채널만 쓸 수 있고, 들어오는 사람은 realtime_messages 표의 규칙이 정해요. 규칙은 개발자 이상이 더할 수 있어요.