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 long
ackTimeoutS
protected java.util.Queue<java.lang.Runnable>
connectCallbacks
protected boolean
connected
protected boolean
connecting
protected org.ngengine.platform.transport.WebsocketTransport
connector
protected boolean
disconnectedByClient
protected org.ngengine.platform.ExecutionQueue
excQueue
protected org.ngengine.platform.AsyncExecutor
executor
protected boolean
firstConnection
protected java.util.List<NostrRelayComponent>
listeners
protected java.util.Queue<org.ngengine.nostr4j.NostrRelay.QueuedMessage>
messageQueue
protected boolean
parallelEvents
protected ExponentialBackoff
reconnectionBackoff
protected boolean
reconnectOnDrop
protected NostrRelayInfo
relayInfo
protected java.lang.String
url
protected boolean
verifyEvents
protected 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 NostrRelay
addComponent(NostrRelayComponent listener)
void
afterSendMessage(NostrMessage message)
void
beforeSendMessage(NostrMessage message)
org.ngengine.platform.AsyncTask<NostrRelay>
connect()
org.ngengine.platform.AsyncTask<NostrRelay>
connect(boolean retry)
org.ngengine.platform.AsyncTask<NostrRelay>
disconnect(java.lang.String reason)
long
getAckTimeout(java.util.concurrent.TimeUnit outputUnit)
<T extends NostrRelayComponent>
TgetComponent(java.lang.Class<T> clazz)
NostrRelayInfo
getInfo()
java.lang.String
getUrl()
boolean
isAsyncEventsVerification()
boolean
isAutoReconnect()
boolean
isConnected()
boolean
isVerifyEvents()
protected void
loop()
NostrRelay
removeComponent(NostrRelayComponent listener)
protected <T> void
runInRelayExecutor(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)
void
setAckTimeout(long time, java.util.concurrent.TimeUnit unit)
void
setAsyncEventsVerification(boolean v)
void
setAutoReconnect(boolean reconnect)
void
setVerifyEvents(boolean verify)
-
-
-
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
-
reconnectOnDrop
protected volatile boolean reconnectOnDrop
-
disconnectedByClient
protected volatile boolean disconnectedByClient
-
connected
protected volatile boolean connected
-
connecting
protected volatile boolean connecting
-
firstConnection
protected volatile boolean firstConnection
-
verifyEvents
protected volatile boolean verifyEvents
-
parallelEvents
protected volatile boolean parallelEvents
-
messageQueue
protected final java.util.Queue<org.ngengine.nostr4j.NostrRelay.QueuedMessage> messageQueue
-
connectCallbacks
protected final java.util.Queue<java.lang.Runnable> connectCallbacks
-
relayInfo
protected transient NostrRelayInfo relayInfo
-
-
Method Detail
-
runInRelayExecutor
protected <T> void runInRelayExecutor(java.util.function.BiConsumer<java.util.function.Consumer<T>,java.util.function.Consumer<java.lang.Throwable>> runnable, boolean enqueue)
-
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)
-
getUrl
public java.lang.String getUrl()
-
connect
public org.ngengine.platform.AsyncTask<NostrRelay> connect()
-
connect
public org.ngengine.platform.AsyncTask<NostrRelay> connect(boolean retry)
-
disconnect
public org.ngengine.platform.AsyncTask<NostrRelay> disconnect(java.lang.String reason)
-
loop
protected void loop()
-
-