Se não quiser mexer diretamente com websocket tem a lib nostr-tools que é uma mão na roda.
Dá um npm install nostr-tools e npm install ws
E aqui está o código:
Antes só faça uma coisinha, vá em node_modules/nostr-tools/lib/esm/relay.js e coloque import WebSocket from 'ws'
O código:
import { Relay } from 'nostr-tools/relay'
const relay = await Relay.connect('wss://relay.damus.io')
console.log(`connected to ${relay.url}`)
// let's query for an event that exists
const sub = relay.subscribe([
{
"kinds": [1],
"authors": ['912aa339f3f0c6401da45ec920e7f4f751c56990c8b4e85c912c4161272ad28d'],
},
], {
onevent(event) {
console.log('we got the event we wanted:', event.content)
},
oneose() {
sub.close()
}
})