mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-15 19:38:51 +00:00
something
This commit is contained in:
29
node-ws-relay.ts
Normal file
29
node-ws-relay.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import WebSocket from 'ws'
|
||||
import { verifyEvent } from './pure.ts'
|
||||
import { AbstractRelay, WebSocketBase } from './abstract-relay.ts'
|
||||
|
||||
class NodeWs extends WebSocket implements WebSocketBase {
|
||||
constructor(url: string | URL, protocols?: string | string[] | undefined) {
|
||||
super(url, {
|
||||
protocol: Array.isArray(protocols) ? protocols[0] : protocols,
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
this.ping()
|
||||
}, 29000)
|
||||
}
|
||||
}
|
||||
|
||||
export class NodeWsRelay extends AbstractRelay {
|
||||
constructor(url: string) {
|
||||
super(url, { verifyEvent, websocketImplementation: NodeWs })
|
||||
}
|
||||
|
||||
static async connect(url: string): Promise<NodeWsRelay> {
|
||||
const relay = new NodeWsRelay(url)
|
||||
await relay.connect()
|
||||
return relay
|
||||
}
|
||||
}
|
||||
|
||||
export * from './abstract-relay.ts'
|
||||
Reference in New Issue
Block a user