mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-10-08 20:09:17 +02:00
add default STUN and TURN servers
This commit is contained in:
@@ -18,6 +18,7 @@ export default class NostrWebRtcBroker extends EventEmitter<EventMap> {
|
|||||||
signer: Signer;
|
signer: Signer;
|
||||||
pool: Pool;
|
pool: Pool;
|
||||||
defaultRelays: string[];
|
defaultRelays: string[];
|
||||||
|
iceServers: RTCIceServer[] = [];
|
||||||
|
|
||||||
peers = new Map<string, NostrWebRTCPeer>();
|
peers = new Map<string, NostrWebRTCPeer>();
|
||||||
signers = new Map<string, Signer>();
|
signers = new Map<string, Signer>();
|
||||||
@@ -53,7 +54,12 @@ export default class NostrWebRtcBroker extends EventEmitter<EventMap> {
|
|||||||
if (relays.length > 0) this.relays.set(pubkey, relays);
|
if (relays.length > 0) this.relays.set(pubkey, relays);
|
||||||
else this.relays.set(pubkey, this.defaultRelays);
|
else this.relays.set(pubkey, this.defaultRelays);
|
||||||
|
|
||||||
const peer = new NostrWebRTCPeer(signer, this.pool, relays.length > 0 ? relays : this.defaultRelays);
|
const peer = new NostrWebRTCPeer(
|
||||||
|
signer,
|
||||||
|
this.pool,
|
||||||
|
relays.length > 0 ? relays : this.defaultRelays,
|
||||||
|
this.iceServers,
|
||||||
|
);
|
||||||
this.peers.set(pubkey, peer);
|
this.peers.set(pubkey, peer);
|
||||||
await peer.makeCall(pubkey);
|
await peer.makeCall(pubkey);
|
||||||
|
|
||||||
|
14
src/const.ts
14
src/const.ts
@@ -12,3 +12,17 @@ export const COMMON_CONTACT_RELAY = safeRelayUrl("wss://purplepag.es") as string
|
|||||||
export const COMMON_CONTACT_RELAYS = [COMMON_CONTACT_RELAY];
|
export const COMMON_CONTACT_RELAYS = [COMMON_CONTACT_RELAY];
|
||||||
|
|
||||||
export const DEFAULT_SIGNAL_RELAYS = safeRelayUrls(["wss://nostrue.com/", "wss://relay.damus.io"]);
|
export const DEFAULT_SIGNAL_RELAYS = safeRelayUrls(["wss://nostrue.com/", "wss://relay.damus.io"]);
|
||||||
|
|
||||||
|
export const DEFAULT_ICE_SERVERS: RTCIceServer[] = [
|
||||||
|
{
|
||||||
|
urls: ["stun:freeturn.net:3479"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
urls: ["turn:freeturn.net:3479"],
|
||||||
|
username: "free",
|
||||||
|
credential: "free",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
urls: ["stun:stun.l.google.com:19302"],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
@@ -10,6 +10,7 @@ import SimpleSigner from "../classes/simple-signer";
|
|||||||
import { localRelay } from "./local-relay";
|
import { localRelay } from "./local-relay";
|
||||||
import localSettings from "./local-settings";
|
import localSettings from "./local-settings";
|
||||||
import NostrWebRTCPeer from "../classes/nostr-webrtc-peer";
|
import NostrWebRTCPeer from "../classes/nostr-webrtc-peer";
|
||||||
|
import { DEFAULT_ICE_SERVERS } from "../const";
|
||||||
|
|
||||||
class WebRtcRelaysService {
|
class WebRtcRelaysService {
|
||||||
log = logger.extend("NostrWebRtcBroker");
|
log = logger.extend("NostrWebRtcBroker");
|
||||||
@@ -126,11 +127,10 @@ class WebRtcRelaysService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const signer = new SimpleSigner(localSettings.webRtcLocalIdentity.value);
|
const signer = new SimpleSigner(localSettings.webRtcLocalIdentity.value);
|
||||||
|
const broker = new NostrWebRtcBroker(signer, new SimplePool(), ["wss://nos.lol", "wss://nostrue.com"]);
|
||||||
|
broker.iceServers = DEFAULT_ICE_SERVERS;
|
||||||
|
|
||||||
const webRtcRelaysService = new WebRtcRelaysService(
|
const webRtcRelaysService = new WebRtcRelaysService(broker, localRelay as AbstractRelay | null);
|
||||||
new NostrWebRtcBroker(signer, new SimplePool(), ["wss://nos.lol", "wss://nostrue.com"]),
|
|
||||||
localRelay as AbstractRelay | null,
|
|
||||||
);
|
|
||||||
|
|
||||||
webRtcRelaysService.start();
|
webRtcRelaysService.start();
|
||||||
|
|
||||||
|
@@ -1,5 +1,16 @@
|
|||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
import { Alert, AlertIcon, Button, Flex, Heading, Input, Text, useForceUpdate, useInterval } from "@chakra-ui/react";
|
import {
|
||||||
|
Alert,
|
||||||
|
AlertIcon,
|
||||||
|
Button,
|
||||||
|
CloseButton,
|
||||||
|
Flex,
|
||||||
|
Heading,
|
||||||
|
Input,
|
||||||
|
Text,
|
||||||
|
useForceUpdate,
|
||||||
|
useInterval,
|
||||||
|
} from "@chakra-ui/react";
|
||||||
import { useForm } from "react-hook-form";
|
import { useForm } from "react-hook-form";
|
||||||
|
|
||||||
import BackButton from "../../../components/router/back-button";
|
import BackButton from "../../../components/router/back-button";
|
||||||
@@ -78,6 +89,13 @@ export default function WebRtcConnectView() {
|
|||||||
>
|
>
|
||||||
Connect
|
Connect
|
||||||
</Button>
|
</Button>
|
||||||
|
<CloseButton
|
||||||
|
onClick={() =>
|
||||||
|
localSettings.webRtcRecentConnections.next(
|
||||||
|
localSettings.webRtcRecentConnections.value.filter((u) => u !== uri),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
|
Reference in New Issue
Block a user