Class NostrRelay
java.lang.Object
org.ngengine.nostr4j.NostrRelay
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AtomicLongprotected longprotected final AtomicLongprotected final Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback> protected final org.ngengine.platform.transport.WebsocketTransportprotected NostrRelay.Statusprotected final Queue<org.ngengine.nostr4j.NostrRelay.ConnectionCallback> protected booleanprotected final org.ngengine.platform.ExecutionQueueprotected final org.ngengine.platform.AsyncExecutorprotected final List<NostrRelayComponent> protected Stringprotected intprotected final Queue<org.ngengine.nostr4j.NostrRelay.QueuedMessage> protected booleanprotected booleanprotected final ExponentialBackoffprotected NostrRelayInfoprotected Instantprotected Durationprotected final AtomicLongprotected final Stringprotected booleanprotected final Map<String, NostrMessageAck> -
Constructor Summary
ConstructorsConstructorDescriptionNostrRelay(String url) NostrRelay(String url, org.ngengine.platform.AsyncExecutor executor) -
Method Summary
Modifier and TypeMethodDescriptionaddComponent(NostrRelayComponent listener) voidafterSendMessage(NostrMessage message) voidbeforeSendMessage(NostrMessage message) protected voidorg.ngengine.platform.AsyncTask<NostrRelay> connect()org.ngengine.platform.AsyncTask<NostrRelay> disconnect(String reason) org.ngengine.platform.AsyncTask<NostrRelay> disconnect(String reason, boolean reconnect) longgetAckTimeout(TimeUnit outputUnit) <T extends NostrRelayComponent>
TgetComponent(Class<T> clazz) getInfo()getUrl()booleanisActive()Returns true while the relay is active in its lifecycle, including connection setup/retry states.booleanbooleanbooleanReturns true only when the websocket transport is ready for immediate sends.protected booleanprotected booleanbooleanprotected voidloop()protected voidremoveComponent(NostrRelayComponent listener) voidprotected <T> voidrunInRelayExecutor(BiConsumer<Consumer<T>, Consumer<Throwable>> runnable, boolean enqueue) protected voidprotected voidscheduleConnectAttempt(Duration delay) protected voidorg.ngengine.platform.AsyncTask<NostrMessageAck> sendMessage(NostrMessage message) protected org.ngengine.platform.AsyncTask<NostrMessageAck> sendMessage(NostrMessage message, int failures) voidsetAckTimeout(long time, TimeUnit unit) voidsetAsyncEventsVerification(boolean v) voidsetAutoReconnect(boolean reconnect) protected voidvoidsetVerifyEvents(boolean verify) toString()protected void
-
Field Details
-
connector
protected final org.ngengine.platform.transport.WebsocketTransport connector -
url
-
listeners
-
waitingEventsAck
-
executor
protected final org.ngengine.platform.AsyncExecutor executor -
excQueue
protected final org.ngengine.platform.ExecutionQueue excQueue -
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 -
connectAttemptGeneration
-
statusTimeoutGeneration
-
ackCleanupGeneration
-
currentStatus
-
statusSince
-
statusTimeout
-
reconnect
protected boolean reconnect -
markForDisconnection
-
messageQueue
-
connectCallbacks
-
disconnectCallbacks
-
relayInfo
-
-
Constructor Details
-
NostrRelay
-
NostrRelay
-
-
Method Details
-
setStatus
-
updateStatus
-
getStatus
-
isStatusTimeout
protected boolean isStatusTimeout() -
cleanupExpiredAcks
protected void cleanupExpiredAcks() -
scheduleAckCleanupIfNeeded
protected void scheduleAckCleanupIfNeeded() -
scheduleStatusTimeoutCheck
protected void scheduleStatusTimeoutCheck() -
scheduleConnectAttempt
-
runInRelayExecutor
protected <T> void runInRelayExecutor(BiConsumer<Consumer<T>, Consumer<Throwable>> runnable, boolean enqueue) -
resetConnection
public void resetConnection() -
getInfo
- Throws:
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
-
getAckTimeout
-
addComponent
-
removeComponent
-
getComponent
-
isConnected
public boolean isConnected()Returns true only when the websocket transport is ready for immediate sends. -
isActive
public boolean isActive()Returns true while the relay is active in its lifecycle, including connection setup/retry states. -
beforeSendMessage
-
afterSendMessage
-
sendMessage
-
sendMessage
protected org.ngengine.platform.AsyncTask<NostrMessageAck> sendMessage(NostrMessage message, int failures) -
getUrl
-
connect
-
isMarkedForDisconnection
protected boolean isMarkedForDisconnection() -
disconnect
-
disconnect
-
loop
protected void loop() -
processState
protected void processState() -
toString
-