快速上手

大約二十行就能完成連線、訂閱與發布。範例用 nostr-tools,但任何符合 NIP-01 的客戶端都可以。

範例

import { Relay } from "nostr-tools/relay";
import { finalizeEvent, generateSecretKey } from "nostr-tools/pure";

const sk = generateSecretKey();
const relay = await Relay.connect("wss://cinder-relay.cinderous1.workers.dev/app/my-game");

// Subscribe with a tag filter — no AUTH needed.
relay.subscribe([{ kinds: [1078], "#t": ["my-game-lobby"] }], {
  onevent(event) {
    console.log(event.pubkey, event.content);
  },
});

// Publish — also no AUTH needed.
await relay.publish(
  finalizeEvent(
    { kind: 1078, created_at: Math.floor(Date.now() / 1000), tags: [["t", "my-game-lobby"]], content: "hello" },
    sk,
  ),
);

剛才發生了什麼

  • /app/my-game 把你導進車道,而不是 Cinderous 通訊軟體;車道有自己的儲存。
  • 中繼在連線時送出一則 AUTH 挑戰。你可以忽略它,只有 #p 訂閱才需要(見認證)。
  • kind 1078 是一般事件,會保存一段時間,之後的訂閱者也看得到。kind 20000–29999 只即時轉發(見保存期與儲存)。

下一步