앞바다 바위

relay 등대

ja· en· ko
처음 오신 분께여러 섬으로 편지를 한데 모아 배달해 주는 중계 서버 장치예요.

작은 섬들을 한데 이어줄 수 있어요. 일일이 편지를 주고받지 않아도, 등대를 구독하면 바다의 소식이 한꺼번에 도착해요. 사람이 드문 섬의 연합 경험은 릴레이가 있느냐 없느냐로 크게 달라지죠 — 그리고 이건 그 등대를 직접 세우기 위한 키트예요.

앞바다에는 두 가지 방식(Mastodon 식과 LitePub 식)이 있고, 구독하는 악수가 미묘하게 달라요. 그래서 이 등대는 두 얼굴을 다 가지고 있어요.

볼거리

  • 구독도 해지도 Follow의 악수(follow.ts)예요 — 등대도 또한 하나의 actor죠
  • 두 방식 모두에 테스트가 딸려 있어요(mastodon.test.ts / litepub.test.ts)
  • 약 2900줄이에요. relay 서버를 직접 만들고 싶은 섬을 위한 등대 키트죠

경문 한 구절

export function createRelay(
  type: RelayType,
  options: RelayOptions,
): Relay {
  switch (type) {
    case "mastodon":
      return new MastodonRelay(options, relayBuilder);
    case "litepub":
      return new LitePubRelay(options, relayBuilder);
  }
}
packages/relay/src/factory.ts L26-L36— 두 가지 방식이 갈리는 길

배치도

packages/relay/src/factory.ts
createRelay() — 방식이 갈리는 갈림길
packages/relay/src/mastodon.ts
Mastodon 식 릴레이
packages/relay/src/litepub.ts
LitePub 식 릴레이
packages/relay/src/follow.ts
Follow의 악수(구독/해지)

옆방

바깥 링크