Package org.ngengine.nostr4j
Class NostrRelay
- java.lang.Object
-
- org.ngengine.nostr4j.NostrRelay
-
public final class NostrRelay extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected longackTimeoutSprotected java.util.Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback>connectCallbacksprotected org.ngengine.platform.transport.WebsocketTransportconnectorprotected org.ngengine.nostr4j.NostrRelay.StatuscurrentStatusprotected java.util.Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback>disconnectCallbacksprotected booleanenableAutoReconnectprotected org.ngengine.platform.ExecutionQueueexcQueueprotected org.ngengine.platform.AsyncExecutorexecutorprotected java.util.List<NostrRelayComponent>listenersprotected java.lang.StringmarkForDisconnectionprotected intmaxSendFailuresprotected java.util.Queue<org.ngengine.nostr4j.NostrRelay.QueuedMessage>messageQueueprotected booleanparallelEventsprotected booleanreconnectprotected ExponentialBackoffreconnectionBackoffprotected NostrRelayInforelayInfoprotected java.time.InstantstatusSinceprotected java.time.DurationstatusTimeoutprotected java.lang.Stringurlprotected booleanverifyEventsprotected java.util.Map<java.lang.String,NostrMessageAck>waitingEventsAck
-
Constructor Summary
Constructors Constructor Description NostrRelay(java.lang.String url)NostrRelay(java.lang.String url, org.ngengine.platform.AsyncExecutor executor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NostrRelayaddComponent(NostrRelayComponent listener)voidafterSendMessage(NostrMessage message)protected voidbaseLoop()voidbeforeSendMessage(NostrMessage message)org.ngengine.platform.AsyncTask<NostrRelay>connect()org.ngengine.platform.AsyncTask<NostrRelay>disconnect(java.lang.String reason)longgetAckTimeout(java.util.concurrent.TimeUnit outputUnit)<T extends NostrRelayComponent>
TgetComponent(java.lang.Class<T> clazz)NostrRelayInfogetInfo()org.ngengine.nostr4j.NostrRelay.StatusgetStatus()java.lang.StringgetUrl()booleanisAsyncEventsVerification()booleanisAutoReconnect()booleanisConnected()protected booleanisMarkedForDisconnection()protected booleanisStatusTimeout()booleanisVerifyEvents()protected voidloop()NostrRelayremoveComponent(NostrRelayComponent listener)voidresetConnection()protected <T> voidrunInRelayExecutor(java.util.function.BiConsumer<java.util.function.Consumer<T>,java.util.function.Consumer<java.lang.Throwable>> runnable, boolean enqueue)org.ngengine.platform.AsyncTask<NostrMessageAck>sendMessage(NostrMessage message)protected org.ngengine.platform.AsyncTask<NostrMessageAck>sendMessage(NostrMessage message, int failures)voidsetAckTimeout(long time, java.util.concurrent.TimeUnit unit)voidsetAsyncEventsVerification(boolean v)voidsetAutoReconnect(boolean reconnect)protected voidsetStatus(org.ngengine.nostr4j.NostrRelay.Status s)voidsetVerifyEvents(boolean verify)java.lang.StringtoString()
-
-
-
Field Detail
-
connector
protected final org.ngengine.platform.transport.WebsocketTransport connector
-
url
protected final java.lang.String url
-
listeners
protected final java.util.List<NostrRelayComponent> listeners
-
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
-
reconnectionBackoff
protected final ExponentialBackoff reconnectionBackoff
-
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
-
relayInfo
protected transient NostrRelayInfo relayInfo
-
-
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)
-
addComponent
public NostrRelay addComponent(NostrRelayComponent listener)
-
removeComponent
public NostrRelay removeComponent(NostrRelayComponent listener)
-
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)
-
sendMessage
public org.ngengine.platform.AsyncTask<NostrMessageAck> sendMessage(NostrMessage message)
-
sendMessage
protected org.ngengine.platform.AsyncTask<NostrMessageAck> sendMessage(NostrMessage message, int failures)
-
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:
toStringin classjava.lang.Object
-
-