Class NostrRelay


  • public final class NostrRelay
    extends java.lang.Object
    • Field Detail

      • connector

        protected final org.ngengine.platform.transport.WebsocketTransport connector
      • url

        protected final java.lang.String url
      • waitingEventsAck

        protected final java.util.Map<java.lang.String,​NostrMessageAck> waitingEventsAck
      • executor

        protected final org.ngengine.platform.AsyncExecutor executor
      • excQueue

        protected final org.ngengine.platform.ExecutionQueue excQueue
      • ackTimeoutS

        protected volatile long ackTimeoutS
      • enableAutoReconnect

        protected volatile boolean enableAutoReconnect
      • maxSendFailures

        protected volatile int maxSendFailures
      • verifyEvents

        protected volatile boolean verifyEvents
      • parallelEvents

        protected volatile boolean parallelEvents
      • currentStatus

        protected org.ngengine.nostr4j.NostrRelay.Status currentStatus
      • statusSince

        protected java.time.Instant statusSince
      • statusTimeout

        protected java.time.Duration statusTimeout
      • reconnect

        protected boolean reconnect
      • markForDisconnection

        protected java.lang.String markForDisconnection
      • messageQueue

        protected final java.util.Queue<org.ngengine.nostr4j.NostrRelay.QueuedMessage> messageQueue
      • connectCallbacks

        protected final java.util.Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback> connectCallbacks
      • disconnectCallbacks

        protected final java.util.Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback> disconnectCallbacks
    • Constructor Detail

      • NostrRelay

        public NostrRelay​(java.lang.String url)
      • NostrRelay

        public NostrRelay​(java.lang.String url,
                          org.ngengine.platform.AsyncExecutor executor)
    • Method Detail

      • setStatus

        protected void setStatus​(org.ngengine.nostr4j.NostrRelay.Status s)
      • getStatus

        public org.ngengine.nostr4j.NostrRelay.Status getStatus()
      • isStatusTimeout

        protected boolean isStatusTimeout()
      • baseLoop

        protected void baseLoop()
      • runInRelayExecutor

        protected <T> void runInRelayExecutor​(java.util.function.BiConsumer<java.util.function.Consumer<T>,​java.util.function.Consumer<java.lang.Throwable>> runnable,
                                              boolean enqueue)
      • resetConnection

        public void resetConnection()
      • getInfo

        public NostrRelayInfo getInfo()
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • setVerifyEvents

        public void setVerifyEvents​(boolean verify)
      • isVerifyEvents

        public boolean isVerifyEvents()
      • setAsyncEventsVerification

        public void setAsyncEventsVerification​(boolean v)
      • isAsyncEventsVerification

        public boolean isAsyncEventsVerification()
      • setAutoReconnect

        public void setAutoReconnect​(boolean reconnect)
      • isAutoReconnect

        public boolean isAutoReconnect()
      • setAckTimeout

        public void setAckTimeout​(long time,
                                  java.util.concurrent.TimeUnit unit)
      • getAckTimeout

        public long getAckTimeout​(java.util.concurrent.TimeUnit outputUnit)
      • getComponent

        public <T extends NostrRelayComponent> T getComponent​(java.lang.Class<T> clazz)
      • isConnected

        public boolean isConnected()
      • beforeSendMessage

        public void beforeSendMessage​(NostrMessage message)
      • afterSendMessage

        public void afterSendMessage​(NostrMessage message)
      • getUrl

        public java.lang.String getUrl()
      • connect

        public org.ngengine.platform.AsyncTask<NostrRelay> connect()
      • isMarkedForDisconnection

        protected boolean isMarkedForDisconnection()
      • disconnect

        public org.ngengine.platform.AsyncTask<NostrRelay> disconnect​(java.lang.String reason)
      • loop

        protected void loop()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object