Skip to content

Commit 8ae6180

Browse files
committed
add toggler to force turn
1 parent f91aefb commit 8ae6180

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

nostr4j/src/main/java/org/ngengine/nostr4j/rtc/NostrRTCSocket.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public class NostrRTCSocket implements RTCTransportListener, NostrTURN.Listener,
9191
private NostrRTCPeer remotePeer;
9292

9393
private volatile boolean useTURN = false;
94+
private volatile boolean forceTURN = false;
9495
private volatile boolean connected = false;
9596
private volatile AsyncTask<Void> delayedCandidateEmission;
9697

@@ -334,11 +335,16 @@ public void onRTCDisconnected(String reason) {
334335
* @param use
335336
*/
336337
public void useTURN(boolean use) {
338+
if(forceTURN) use = true;
337339
if (use == useTURN) return;
338340
logger.fine("Using TURN: " + use);
339341
this.useTURN = use;
340342
}
341343

344+
public boolean isUsingTURN() {
345+
return useTURN;
346+
}
347+
342348
@Override
343349
public void onRTCBinaryMessage(ByteBuffer bbf) {
344350
for (NostrRTCSocketListener listener : listeners) {
@@ -386,4 +392,18 @@ assert dbg(() -> {
386392
public void onRTCChannelError(Throwable e) {
387393
logger.severe("RTC Channel Error " + e);
388394
}
395+
396+
397+
/**
398+
* Force the usage of TURN server.
399+
* @param forceTURN
400+
*/
401+
public void setForceTURN(boolean forceTURN) {
402+
this.forceTURN = forceTURN;
403+
if(!useTURN&&forceTURN) {
404+
logger.fine("Forcing TURN usage");
405+
useTURN(true);
406+
}
407+
}
408+
389409
}

0 commit comments

Comments
 (0)