Skip to content

Commit 66abeab

Browse files
committed
add turn servers for test
1 parent 272ebd9 commit 66abeab

5 files changed

Lines changed: 189 additions & 41 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ https://node-projects.github.io/web-component-designer-demo/index.html
1010

1111
Manual WebRTC signaling works out of the box for same-browser tabs. The demo now defaults to Google's public STUN server at `stun:stun.l.google.com:19302`, and you can change the RTC configuration from the `collab` menu.
1212

13-
The `collab` menu also has a `free TURN providers` submenu. The currently verified free path is Cloudflare TURN via `https://speed.cloudflare.com/turn-creds`. Paste that JSON into `Cloudflare TURN (verified) > paste turn-creds JSON...`.
13+
The `collab` menu also has a `free TURN providers` submenu. The first option is `Metered TURN (hardcoded)`, which applies the built-in Metered/OpenRelay ICE server credentials directly without prompting. Cloudflare TURN is also supported there through Cloudflare's official `generate-ice-servers` flow documented at `https://developers.cloudflare.com/realtime/turn/generate-credentials/`. For local testing, the demo can prompt for the TURN key id, API token, and TTL and fetch that JSON directly with `Cloudflare TURN (official API) > fetch credentials now... (dev/test)`. You can also paste the returned JSON into `Cloudflare TURN (official API) > paste generate-ice-servers JSON...`.
1414

15-
OpenRelay is also linked in the same submenu, but it requires signup or API-provided credentials before you can paste the returned `iceServers` JSON into the demo.
15+
The hardcoded Metered/OpenRelay option contains live TURN credentials in the demo source, so treat it as a convenience preset rather than a production-safe deployment pattern.
1616

1717
For different machines you will often still need STUN or TURN servers. The demo also accepts one or more `collabIceServer` query parameters, for example:
1818

1919
```text
2020
https://node-projects.github.io/web-component-designer-demo/index.html?collabIceServer=stun:stun.l.google.com:19302
2121
```
2222

23-
For more advanced setups you can pass a full JSON-encoded `RTCConfiguration` through `collabRtcConfiguration`, or paste that JSON into the collab menu's `edit RTC configuration...` action. The menu now also accepts direct provider responses such as a single ICE server entry, an `iceServers` array, or Cloudflare's `turn-creds` JSON object.
23+
For more advanced setups you can pass a full JSON-encoded `RTCConfiguration` through `collabRtcConfiguration`, or paste that JSON into the collab menu's `edit RTC configuration...` action. The menu now also accepts direct provider responses such as a single ICE server entry, an `iceServers` array, or Cloudflare's `generate-ice-servers` JSON object. When using the direct Cloudflare fetch path, prefer local testing only because the API token is exposed to the browser.
2424

2525
## Developing
2626

index.html

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,31 @@
1919
<script>
2020
const importMap = {
2121
imports: {
22-
"monaco-editor": "./node_modules/monaco-editor/esm/vs/editor/editor.main.min.js",
23-
"@node-projects/base-custom-webcomponent": "./node_modules/@node-projects/base-custom-webcomponent/dist/index-min.js",
24-
"@node-projects/css-parser": "./node_modules/@node-projects/css-parser/dist/index-min.js",
25-
"@node-projects/web-component-designer": "./node_modules/@node-projects/web-component-designer/dist/index-min.js",
26-
"@node-projects/web-component-designer-widgets-wunderbaum": "./node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/index-min.js",
27-
"@node-projects/lean-he-esm": "./node_modules/@node-projects/lean-he-esm/lib/index-min.js",
28-
"@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index-min.js",
29-
"@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index-min.js",
30-
"@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index-min.js",
31-
"@node-projects/acad-ts": "./node_modules/@node-projects/acad-ts/dist/index-min.js",
32-
"@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index-min.js",
33-
"dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent-min.js",
34-
35-
"max_monaco-editor": "./node_modules/monaco-editor/esm/vs/editor/editor.main.js",
36-
"max_@node-projects/base-custom-webcomponent": "./node_modules/@node-projects/base-custom-webcomponent/dist/index.js",
37-
"max_@node-projects/css-parser": "./node_modules/@node-projects/css-parser/dist/index.js",
38-
"max_@node-projects/web-component-designer": "./node_modules/@node-projects/web-component-designer/dist/index.js",
39-
"max_@node-projects/web-component-designer-widgets-wunderbaum": "./node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/index.js",
40-
"max_@node-projects/lean-he-esm": "./node_modules/@node-projects/lean-he-esm/lib/index.js",
41-
"max_@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index.js",
42-
"max_@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index.js",
43-
"max_@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index.js",
44-
"max_@node-projects/acad-ts": "./node_modules/@node-projects/acad-ts/dist/index.js",
45-
"max_@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index.js",
46-
"max_dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent.js",
22+
"min_monaco-editor": "./node_modules/monaco-editor/esm/vs/editor/editor.main.min.js",
23+
"min_@node-projects/base-custom-webcomponent": "./node_modules/@node-projects/base-custom-webcomponent/dist/index-min.js",
24+
"min_@node-projects/css-parser": "./node_modules/@node-projects/css-parser/dist/index-min.js",
25+
"min_@node-projects/web-component-designer": "./node_modules/@node-projects/web-component-designer/dist/index-min.js",
26+
"min_@node-projects/web-component-designer-widgets-wunderbaum": "./node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/index-min.js",
27+
"min_@node-projects/lean-he-esm": "./node_modules/@node-projects/lean-he-esm/lib/index-min.js",
28+
"min_@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index-min.js",
29+
"min_@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index-min.js",
30+
"min_@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index-min.js",
31+
"min_@node-projects/acad-ts": "./node_modules/@node-projects/acad-ts/dist/index-min.js",
32+
"min_@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index-min.js",
33+
"min_dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent-min.js",
34+
35+
"monaco-editor": "./node_modules/monaco-editor/esm/vs/editor/editor.main.js",
36+
"@node-projects/base-custom-webcomponent": "./node_modules/@node-projects/base-custom-webcomponent/dist/index.js",
37+
"@node-projects/css-parser": "./node_modules/@node-projects/css-parser/dist/index.js",
38+
"@node-projects/web-component-designer": "./node_modules/@node-projects/web-component-designer/dist/index.js",
39+
"@node-projects/web-component-designer-widgets-wunderbaum": "./node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/index.js",
40+
"@node-projects/lean-he-esm": "./node_modules/@node-projects/lean-he-esm/lib/index.js",
41+
"@node-projects/node-html-parser-esm": "./node_modules/@node-projects/node-html-parser-esm/dist/index.js",
42+
"@node-projects/pickr-webcomponent": "./node_modules/@node-projects/pickr-webcomponent/lib/index.js",
43+
"@node-projects/layout2vector": "./node_modules/@node-projects/layout2vector/dist/index.js",
44+
"@node-projects/acad-ts": "./node_modules/@node-projects/acad-ts/dist/index.js",
45+
"@node-projects/web-component-designer-collaboration-service": "./node_modules/@node-projects/web-component-designer-collaboration-service/dist/index.js",
46+
"dock-spawn-ts": "./node_modules/dock-spawn-ts/lib/js/index-webcomponent.js",
4747

4848
"@mlc-ai/web-llm": "./node_modules/@mlc-ai/web-llm/lib/index.js",
4949
"@node-projects/": "./node_modules/@node-projects/",

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"@node-projects/lean-he-esm": "^3.4.1",
3737
"@node-projects/node-html-parser-esm": "^6.4.1",
3838
"@node-projects/pickr-webcomponent": "^1.1.0",
39-
"@node-projects/web-component-designer": "^0.1.352",
39+
"@node-projects/web-component-designer": "^0.1.353",
4040
"@node-projects/web-component-designer-codeview-monaco": "^0.1.33",
4141
"@node-projects/web-component-designer-collaboration-service": "^0.1.5",
4242
"@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.12",

0 commit comments

Comments
 (0)