mirror of
https://github.com/getAlby/hub.git
synced 2026-08-13 12:33:39 +02:00
Merge branch 'main' into client-pubkey-flow
# By kiwiidb # Via GitHub (2) and kiwiidb (1) * main: reconnect on relay error reuse relay connection # Conflicts: # main.go # service.go
This commit is contained in:
commit
b824a17222
2 changed files with 18 additions and 12 deletions
22
main.go
22
main.go
|
|
@ -139,8 +139,15 @@ func main() {
|
|||
wg.Done()
|
||||
}()
|
||||
|
||||
//connect to the relay
|
||||
svc.Logger.Infof("Connecting to the relay: %s", cfg.Relay)
|
||||
relay, err := nostr.RelayConnect(ctx, cfg.Relay)
|
||||
if err != nil {
|
||||
svc.Logger.Fatal(err)
|
||||
}
|
||||
|
||||
//publish event with NIP-47 info
|
||||
err = svc.PublishNip47Info(ctx)
|
||||
err = svc.PublishNip47Info(ctx, relay)
|
||||
if err != nil {
|
||||
svc.Logger.WithError(err).Error("Could not publish NIP47 info")
|
||||
}
|
||||
|
|
@ -148,22 +155,25 @@ func main() {
|
|||
//Start infinite loop which will be only broken by canceling ctx (SIGINT)
|
||||
//TODO: we can start this loop for multiple relays
|
||||
for {
|
||||
svc.Logger.Infof("Connecting to the relay: %s", cfg.Relay)
|
||||
relay, err := nostr.RelayConnect(ctx, cfg.Relay)
|
||||
if err != nil {
|
||||
svc.Logger.Fatal(err)
|
||||
}
|
||||
svc.Logger.Info("Subscribing to events")
|
||||
sub := relay.Subscribe(ctx, svc.createFilters())
|
||||
err = svc.StartSubscription(ctx, sub)
|
||||
if err != nil {
|
||||
//err being non-nil means that we have an error on the websocket error channel. In this case we just try to reconnect.
|
||||
svc.Logger.WithError(err).Error("Got an error from the relay. Reconnecting...")
|
||||
relay, err = nostr.RelayConnect(ctx, cfg.Relay)
|
||||
if err != nil {
|
||||
svc.Logger.Fatal(err)
|
||||
}
|
||||
continue
|
||||
}
|
||||
//err being nil means that the context was canceled and we should exit the program.
|
||||
break
|
||||
}
|
||||
err = relay.Close()
|
||||
if err != nil {
|
||||
svc.Logger.Error(err)
|
||||
}
|
||||
svc.Logger.Info("Graceful shutdown completed. Goodbye.")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -257,17 +257,13 @@ func (svc *Service) createResponse(initialEvent *nostr.Event, content interface{
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
func (svc *Service) PublishNip47Info(ctx context.Context) error {
|
||||
relay, err := nostr.RelayConnect(ctx, svc.cfg.Relay)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (svc *Service) PublishNip47Info(ctx context.Context, relay *nostr.Relay) error {
|
||||
ev := &nostr.Event{}
|
||||
ev.Kind = NIP_47_INFO_EVENT_KIND
|
||||
ev.Content = NIP_47_CAPABILITIES
|
||||
ev.CreatedAt = time.Now()
|
||||
ev.PubKey = svc.cfg.IdentityPubkey
|
||||
err = ev.Sign(svc.cfg.NostrSecretKey)
|
||||
err := ev.Sign(svc.cfg.NostrSecretKey)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue