@device-portal/react 0.0.7 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/package.json +3 -4
- package/dist/client/src/delay.d.ts +0 -1
- package/dist/client/src/index.d.ts +0 -7
- package/dist/client/src/settings.d.ts +0 -9
- package/dist/client/src/utilities/Brand.d.ts +0 -5
- package/dist/client/src/webrtc/Initiator.d.ts +0 -41
- package/dist/client/src/webrtc/Peer.d.ts +0 -40
- package/dist/client/src/webrtc/PeerId.d.ts +0 -2
- package/dist/client/src/webrtc/Responder.d.ts +0 -14
- /package/dist/{react/src/consumer → consumer}/DevicePortalConsumer.d.ts +0 -0
- /package/dist/{react/src/consumer → consumer}/useDevicePortalConsumer.d.ts +0 -0
- /package/dist/{react/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{react/src/provider → provider}/DevicePortalProvider.d.ts +0 -0
- /package/dist/{react/src/provider → provider}/useDevicePortalPeer.d.ts +0 -0
- /package/dist/{react/src/provider → provider}/useDevicePortalProvider.d.ts +0 -0
package/README.md
CHANGED
|
@@ -14,6 +14,8 @@ npm install @device-portal/react
|
|
|
14
14
|
|
|
15
15
|
It is expected that the package will be used on two different devices. Create for them two separate pages or apps. Let's call them App A and App B. Both apps will be linked by same `room` (e.g. `'my-test-room'`).
|
|
16
16
|
|
|
17
|
+
> **Note:** The example signaling server `wss://device-portal.filipchalupa.cz` is running on a free instance of render.com, so expect slower startup times if it has been inactive.
|
|
18
|
+
|
|
17
19
|
### One-way Data Flow
|
|
18
20
|
|
|
19
21
|
This is the simplest use case where a `Provider` sends data to one or more `Consumer`s.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@device-portal/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
4
4
|
"description": "Simple WebRTC data channel for React.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"dev:package": "rollup -c -w",
|
|
19
19
|
"build:package": "rollup -c",
|
|
20
20
|
"dev:storybook": "storybook dev -p 6006",
|
|
21
|
-
"build:storybook": "storybook build"
|
|
22
|
-
"prepare": "npm run build:package"
|
|
21
|
+
"build:storybook": "storybook build"
|
|
23
22
|
},
|
|
24
23
|
"repository": {
|
|
25
24
|
"type": "git",
|
|
@@ -39,7 +38,7 @@
|
|
|
39
38
|
"react": "18 || 19"
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
|
-
"@device-portal/client": "^0.0.
|
|
41
|
+
"@device-portal/client": "^0.0.10"
|
|
43
42
|
},
|
|
44
43
|
"devDependencies": {
|
|
45
44
|
"@babel/core": "^7.24.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const delay: (milliseconds: number) => Promise<unknown>;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Peer } from './Peer';
|
|
2
|
-
import { PeerId } from './PeerId';
|
|
3
|
-
type ClientConnection = {
|
|
4
|
-
connection: RTCPeerConnection;
|
|
5
|
-
channel: RTCDataChannel;
|
|
6
|
-
candidatesQueue: RTCIceCandidateInit[];
|
|
7
|
-
value?: {
|
|
8
|
-
value: string;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
export declare class Initiator extends Peer {
|
|
12
|
-
protected role: "initiator";
|
|
13
|
-
protected connections: Map<PeerId, ClientConnection>;
|
|
14
|
-
protected waitingPeers: Set<PeerId>;
|
|
15
|
-
protected readonly maxClients: number;
|
|
16
|
-
protected peerListeners: Map<PeerId, Set<(value: string) => void>>;
|
|
17
|
-
protected onPeersChange: ((peers: PeerId[]) => void) | undefined;
|
|
18
|
-
protected readonly onMessage: ((value: string, peerId: PeerId) => void) | undefined;
|
|
19
|
-
constructor(room: string, options?: {
|
|
20
|
-
onMessage?: (value: string, peerId: PeerId) => void;
|
|
21
|
-
onPeersChange?: (peers: PeerId[]) => void;
|
|
22
|
-
sendLastValueOnConnectAndReconnect?: boolean;
|
|
23
|
-
websocketSignalingServer?: string;
|
|
24
|
-
iceServers?: Array<RTCIceServer>;
|
|
25
|
-
maxClients?: number;
|
|
26
|
-
});
|
|
27
|
-
get peers(): PeerId[];
|
|
28
|
-
addPeerListener(peerId: PeerId, listener: (value: string) => void): () => void;
|
|
29
|
-
protected onConnected(): void;
|
|
30
|
-
protected handlePeerJoined(peerId: PeerId): Promise<void>;
|
|
31
|
-
protected handlePeerLeft(peerId: PeerId): void;
|
|
32
|
-
protected processWaitingPeers(): Promise<void>;
|
|
33
|
-
protected createAndSendOffer(toPeerId: PeerId): Promise<void>;
|
|
34
|
-
protected handleOffer(offer: RTCSessionDescriptionInit, fromPeerId: PeerId): void;
|
|
35
|
-
protected handleAnswer(answer: RTCSessionDescriptionInit, fromPeerId: PeerId): Promise<void>;
|
|
36
|
-
protected handleIceCandidate(candidate: RTCIceCandidateInit, fromPeerId?: PeerId): Promise<void>;
|
|
37
|
-
send(value: string): void;
|
|
38
|
-
sendToPeer(peerId: PeerId, value: string): void;
|
|
39
|
-
destroy(): void;
|
|
40
|
-
}
|
|
41
|
-
export {};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { PeerId } from './PeerId';
|
|
2
|
-
export declare abstract class Peer {
|
|
3
|
-
protected readonly room: string;
|
|
4
|
-
protected isDestroyed: boolean;
|
|
5
|
-
protected connection: RTCPeerConnection | null;
|
|
6
|
-
protected channel: RTCDataChannel | null;
|
|
7
|
-
protected abstract role: 'initiator' | 'responder';
|
|
8
|
-
protected value: {
|
|
9
|
-
value: string;
|
|
10
|
-
} | null;
|
|
11
|
-
protected readonly onMessage: ((value: string, peerId: PeerId) => void) | undefined;
|
|
12
|
-
protected readonly sendLastValueOnConnectAndReconnect: boolean;
|
|
13
|
-
protected readonly websocketSignalingServer: string;
|
|
14
|
-
protected readonly iceServers: Array<RTCIceServer>;
|
|
15
|
-
protected socket: WebSocket | null;
|
|
16
|
-
protected candidatesQueue: RTCIceCandidateInit[];
|
|
17
|
-
protected peerId: PeerId | null;
|
|
18
|
-
constructor(room: string, options?: {
|
|
19
|
-
websocketSignalingServer?: string;
|
|
20
|
-
onMessage?: (value: string, peerId: PeerId) => void;
|
|
21
|
-
sendLastValueOnConnectAndReconnect?: boolean;
|
|
22
|
-
iceServers?: Array<RTCIceServer>;
|
|
23
|
-
});
|
|
24
|
-
protected run(): Promise<void>;
|
|
25
|
-
protected connect(): Promise<void>;
|
|
26
|
-
protected abstract handleOffer(offer: RTCSessionDescriptionInit, fromPeerId: PeerId): void;
|
|
27
|
-
protected abstract handleAnswer(answer: RTCSessionDescriptionInit, fromPeerId: PeerId): void;
|
|
28
|
-
protected abstract handlePeerJoined(peerId: PeerId): void;
|
|
29
|
-
protected abstract handlePeerLeft(peerId: PeerId): void;
|
|
30
|
-
protected abstract onConnected(): void;
|
|
31
|
-
protected handleIceCandidate(candidate: RTCIceCandidateInit, fromPeerId?: PeerId): Promise<void>;
|
|
32
|
-
protected processCandidatesQueue(): Promise<void>;
|
|
33
|
-
protected close(): void;
|
|
34
|
-
destroy(): void;
|
|
35
|
-
protected sendMessage(type: string, data: any, to?: PeerId): void;
|
|
36
|
-
protected setAndShareLocalDescription(description: RTCSessionDescriptionInit, toPeerId?: PeerId): Promise<void>;
|
|
37
|
-
protected shareNewIceCandidate(event: RTCPeerConnectionIceEvent, toPeerId?: PeerId): void;
|
|
38
|
-
send(value: string): void;
|
|
39
|
-
protected initializeConnectionAndChannel(): void;
|
|
40
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Peer } from './Peer';
|
|
2
|
-
import { PeerId } from './PeerId';
|
|
3
|
-
export declare class Responder extends Peer {
|
|
4
|
-
protected role: "responder";
|
|
5
|
-
private reconnectTimeout;
|
|
6
|
-
protected onConnected(): void;
|
|
7
|
-
protected handlePeerJoined(peerId: PeerId): void;
|
|
8
|
-
protected handlePeerLeft(peerId: PeerId): void;
|
|
9
|
-
private startReconnectionTimer;
|
|
10
|
-
private stopReconnectionTimer;
|
|
11
|
-
protected handleOffer(offer: RTCSessionDescriptionInit, fromPeerId: PeerId): Promise<void>;
|
|
12
|
-
destroy(): void;
|
|
13
|
-
protected handleAnswer(answer: RTCSessionDescriptionInit, fromPeerId: PeerId): void;
|
|
14
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|