mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 10:42:16 +00:00
Fix getting started section
This commit is contained in:
parent
bc1785e463
commit
a88c04bfe1
@ -27,8 +27,6 @@ function App() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const isConnected = Fluence.getStatus().isConnected
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<header>
|
<header>
|
||||||
@ -36,7 +34,7 @@ function App() {
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<h1>Status: {isConnected ? "Connected" : "Disconnected"}</h1>
|
<h1>Status: {Fluence.getStatus().isConnected ? "Connected" : "Disconnected"}</h1>
|
||||||
<button className="btn" onClick={onGetRelayTimeBtnClick}>
|
<button className="btn" onClick={onGetRelayTimeBtnClick}>
|
||||||
Get relay time
|
Get relay time
|
||||||
</button>
|
</button>
|
||||||
|
24249
quickstart/1-browser-to-browser/package-lock.json
generated
24249
quickstart/1-browser-to-browser/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
|
|||||||
import logo from "./logo.svg";
|
import logo from "./logo.svg";
|
||||||
import "./App.scss";
|
import "./App.scss";
|
||||||
|
|
||||||
import { FluencePeer } from "@fluencelabs/fluence";
|
import { Fluence } from "@fluencelabs/fluence";
|
||||||
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
||||||
import { sayHello, registerHelloPeer } from "./_aqua/getting-started";
|
import { sayHello, registerHelloPeer } from "./_aqua/getting-started";
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ function App() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const helloBtnOnClick = async () => {
|
const helloBtnOnClick = async () => {
|
||||||
if (!isConnected) {
|
if (!Fluence.getStatus().isConnected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,11 +56,11 @@ function App() {
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="bold">Peer id:</td>
|
<td className="bold">Peer id:</td>
|
||||||
<td className="mono">{FluencePeer.default.connectionInfo.selfPeerId}</td>
|
<td className="mono">{Fluence.getStatus().peerId!}</td>
|
||||||
<td>
|
<td>
|
||||||
<button
|
<button
|
||||||
className="btn-clipboard"
|
className="btn-clipboard"
|
||||||
onClick={() => copyToClipboard(FluencePeer.default.connectionInfo.selfPeerId!)}
|
onClick={() => copyToClipboard(Fluence.getStatus().peerId!)}
|
||||||
>
|
>
|
||||||
<i className="gg-clipboard"></i>
|
<i className="gg-clipboard"></i>
|
||||||
</button>
|
</button>
|
||||||
@ -68,11 +68,11 @@ function App() {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="bold">Relay peer id:</td>
|
<td className="bold">Relay peer id:</td>
|
||||||
<td className="mono">{FluencePeer.default.connectionInfo.connectedRelay}</td>
|
<td className="mono">{Fluence.getStatus().relayPeerId}</td>
|
||||||
<td>
|
<td>
|
||||||
<button
|
<button
|
||||||
className="btn-clipboard"
|
className="btn-clipboard"
|
||||||
onClick={() => copyToClipboard(FluencePeer.default.connectionInfo.connectedRelay!)}
|
onClick={() => copyToClipboard(Fluence.getStatus().relayPeerId!)}
|
||||||
>
|
>
|
||||||
<i className="gg-clipboard"></i>
|
<i className="gg-clipboard"></i>
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,122 +1,115 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* This file is auto-generated. Do not edit manually: changes may be erased.
|
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||||
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||||
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||||
* Aqua version: 0.3.0-224
|
* Aqua version: 0.3.0-226
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import { FluencePeer } from "@fluencelabs/fluence";
|
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
||||||
import {
|
import {
|
||||||
ResultCodes,
|
ResultCodes,
|
||||||
RequestFlow,
|
RequestFlow,
|
||||||
RequestFlowBuilder,
|
RequestFlowBuilder,
|
||||||
CallParams,
|
CallParams,
|
||||||
} from "@fluencelabs/fluence/dist/internal/compilerSupport/v1";
|
} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1';
|
||||||
|
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
|
|
||||||
export interface HelloPeerDef {
|
export interface HelloPeerDef {
|
||||||
hello: (from: string, callParams: CallParams<"from">) => string;
|
hello: (from: string, callParams: CallParams<'from'>) => string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function registerHelloPeer(service: HelloPeerDef): void;
|
export function registerHelloPeer(service: HelloPeerDef): void;
|
||||||
export function registerHelloPeer(
|
export function registerHelloPeer(serviceId: string, service: HelloPeerDef): void;
|
||||||
serviceId: string,
|
export function registerHelloPeer(peer: FluencePeer, service: HelloPeerDef): void;
|
||||||
service: HelloPeerDef
|
export function registerHelloPeer(peer: FluencePeer, serviceId: string, service: HelloPeerDef): void;
|
||||||
): void;
|
export function registerHelloPeer(...args: any) {
|
||||||
export function registerHelloPeer(
|
let peer: FluencePeer;
|
||||||
peer: FluencePeer,
|
let serviceId: any;
|
||||||
service: HelloPeerDef
|
let service: any;
|
||||||
): void;
|
if (FluencePeer.isInstance(args[0])) {
|
||||||
export function registerHelloPeer(
|
peer = args[0];
|
||||||
peer: FluencePeer,
|
} else {
|
||||||
serviceId: string,
|
peer = Fluence.getPeer();
|
||||||
service: HelloPeerDef
|
|
||||||
): void;
|
|
||||||
export function registerHelloPeer(...args: any) {
|
|
||||||
let peer: FluencePeer;
|
|
||||||
let serviceId: any;
|
|
||||||
let service: any;
|
|
||||||
if (args[0] instanceof FluencePeer) {
|
|
||||||
peer = args[0];
|
|
||||||
} else {
|
|
||||||
peer = FluencePeer.default;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof args[0] === "string") {
|
|
||||||
serviceId = args[0];
|
|
||||||
} else if (typeof args[1] === "string") {
|
|
||||||
serviceId = args[1];
|
|
||||||
} else {
|
|
||||||
serviceId = "HelloPeer";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(args[0] instanceof FluencePeer) && typeof args[0] === "object") {
|
|
||||||
service = args[0];
|
|
||||||
} else if (typeof args[1] === "object") {
|
|
||||||
service = args[1];
|
|
||||||
} else {
|
|
||||||
service = args[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
peer.internals.callServiceHandler.use((req, resp, next) => {
|
|
||||||
if (req.serviceId !== serviceId) {
|
|
||||||
next();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.fnName === "hello") {
|
if (typeof args[0] === 'string') {
|
||||||
const callParams = {
|
serviceId = args[0];
|
||||||
...req.particleContext,
|
} else if (typeof args[1] === 'string') {
|
||||||
tetraplets: {
|
serviceId = args[1];
|
||||||
from: req.tetraplets[0],
|
}
|
||||||
},
|
else {
|
||||||
};
|
serviceId = "HelloPeer"
|
||||||
resp.retCode = ResultCodes.success;
|
}
|
||||||
resp.result = service.hello(req.args[0], callParams);
|
|
||||||
|
// Figuring out which overload is the service.
|
||||||
|
// If the first argument is not Fluence Peer and it is an object, then it can only be the service def
|
||||||
|
// If the first argument is peer, we are checking further. The second argument might either be
|
||||||
|
// an object, that it must be the service object
|
||||||
|
// or a string, which is the service id. In that case the service is the third argument
|
||||||
|
if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') {
|
||||||
|
service = args[0];
|
||||||
|
} else if (typeof args[1] === 'object') {
|
||||||
|
service = args[1];
|
||||||
|
} else {
|
||||||
|
service = args[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
next();
|
peer.internals.callServiceHandler.use((req, resp, next) => {
|
||||||
});
|
if (req.serviceId !== serviceId) {
|
||||||
}
|
next();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (req.fnName === 'hello') {
|
||||||
|
|
||||||
|
const callParams = {
|
||||||
|
...req.particleContext,
|
||||||
|
tetraplets: {
|
||||||
|
from: req.tetraplets[0]
|
||||||
|
},
|
||||||
|
};
|
||||||
|
resp.retCode = ResultCodes.success;
|
||||||
|
resp.result = service.hello(req.args[0], callParams)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
|
|
||||||
export function sayHello(
|
export function sayHello(targetPeerId: string, targetRelayPeerId: string, config?: {ttl?: number}) : Promise<string>;
|
||||||
targetPeerId: string,
|
export function sayHello(peer: FluencePeer, targetPeerId: string, targetRelayPeerId: string, config?: {ttl?: number}) : Promise<string>;
|
||||||
targetRelayPeerId: string,
|
export function sayHello(...args: any) {
|
||||||
config?: { ttl?: number }
|
let peer: FluencePeer;
|
||||||
): Promise<string>;
|
let targetPeerId: any;
|
||||||
export function sayHello(
|
let targetRelayPeerId: any;
|
||||||
peer: FluencePeer,
|
let config: any;
|
||||||
targetPeerId: string,
|
if (FluencePeer.isInstance(args[0])) {
|
||||||
targetRelayPeerId: string,
|
peer = args[0];
|
||||||
config?: { ttl?: number }
|
targetPeerId = args[1];
|
||||||
): Promise<string>;
|
targetRelayPeerId = args[2];
|
||||||
export function sayHello(...args: any) {
|
config = args[3];
|
||||||
let peer: FluencePeer;
|
} else {
|
||||||
let targetPeerId: any;
|
peer = Fluence.getPeer();
|
||||||
let targetRelayPeerId: any;
|
targetPeerId = args[0];
|
||||||
let config: any;
|
targetRelayPeerId = args[1];
|
||||||
if (args[0] instanceof FluencePeer) {
|
config = args[2];
|
||||||
peer = args[0];
|
}
|
||||||
targetPeerId = args[1];
|
|
||||||
targetRelayPeerId = args[2];
|
let request: RequestFlow;
|
||||||
config = args[3];
|
const promise = new Promise<string>((resolve, reject) => {
|
||||||
} else {
|
const r = new RequestFlowBuilder()
|
||||||
peer = FluencePeer.default;
|
.disableInjections()
|
||||||
targetPeerId = args[0];
|
.withRawScript(
|
||||||
targetRelayPeerId = args[1];
|
`
|
||||||
config = args[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
let request: RequestFlow;
|
|
||||||
const promise = new Promise<string>((resolve, reject) => {
|
|
||||||
const r = new RequestFlowBuilder()
|
|
||||||
.disableInjections()
|
|
||||||
.withRawScript(
|
|
||||||
`
|
|
||||||
(xor
|
(xor
|
||||||
(seq
|
(seq
|
||||||
(seq
|
(seq
|
||||||
@ -161,37 +154,34 @@ export function sayHello(...args: any) {
|
|||||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||||
)
|
)
|
||||||
|
|
||||||
`
|
`,
|
||||||
)
|
)
|
||||||
.configHandler((h) => {
|
.configHandler((h) => {
|
||||||
h.on("getDataSrv", "-relay-", () => {
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
return peer.connectionInfo.connectedRelay;
|
return peer.getStatus().relayPeerId;
|
||||||
});
|
});
|
||||||
h.on("getDataSrv", "targetPeerId", () => {
|
h.on('getDataSrv', 'targetPeerId', () => {return targetPeerId;});
|
||||||
return targetPeerId;
|
h.on('getDataSrv', 'targetRelayPeerId', () => {return targetRelayPeerId;});
|
||||||
});
|
h.onEvent('callbackSrv', 'response', (args) => {
|
||||||
h.on("getDataSrv", "targetRelayPeerId", () => {
|
const [res] = args;
|
||||||
return targetRelayPeerId;
|
resolve(res);
|
||||||
});
|
});
|
||||||
h.onEvent("callbackSrv", "response", (args) => {
|
|
||||||
const [res] = args;
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
|
|
||||||
h.onEvent("errorHandlingSrv", "error", (args) => {
|
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||||
const [err] = args;
|
const [err] = args;
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.handleScriptError(reject)
|
.handleScriptError(reject)
|
||||||
.handleTimeout(() => {
|
.handleTimeout(() => {
|
||||||
reject("Request timed out for sayHello");
|
reject('Request timed out for sayHello');
|
||||||
});
|
})
|
||||||
if (config && config.ttl) {
|
if(config && config.ttl) {
|
||||||
r.withTTL(config.ttl);
|
r.withTTL(config.ttl)
|
||||||
}
|
}
|
||||||
request = r.build();
|
request = r.build();
|
||||||
});
|
});
|
||||||
peer.internals.initiateFlow(request!);
|
peer.internals.initiateFlow(request!);
|
||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
24249
quickstart/3-browser-to-service/package-lock.json
generated
24249
quickstart/3-browser-to-service/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ import React, { useState } from "react";
|
|||||||
import logo from "./logo.svg";
|
import logo from "./logo.svg";
|
||||||
import "./App.scss";
|
import "./App.scss";
|
||||||
|
|
||||||
import { FluencePeer } from "@fluencelabs/fluence";
|
import { Fluence } from "@fluencelabs/fluence";
|
||||||
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
||||||
import { registerHelloPeer, sayHello } from "./_aqua/getting-started";
|
import { registerHelloPeer, sayHello } from "./_aqua/getting-started";
|
||||||
|
|
||||||
@ -56,11 +56,11 @@ function App() {
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="bold">Peer id:</td>
|
<td className="bold">Peer id:</td>
|
||||||
<td className="mono">{FluencePeer.default.connectionInfo.selfPeerId}</td>
|
<td className="mono">{Fluence.getStatus().peerId!}</td>
|
||||||
<td>
|
<td>
|
||||||
<button
|
<button
|
||||||
className="btn-clipboard"
|
className="btn-clipboard"
|
||||||
onClick={() => copyToClipboard(FluencePeer.default.connectionInfo.selfPeerId)}
|
onClick={() => copyToClipboard(Fluence.getStatus().peerId!)}
|
||||||
>
|
>
|
||||||
<i className="gg-clipboard"></i>
|
<i className="gg-clipboard"></i>
|
||||||
</button>
|
</button>
|
||||||
@ -68,11 +68,11 @@ function App() {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td className="bold">Relay peer id:</td>
|
<td className="bold">Relay peer id:</td>
|
||||||
<td className="mono">{FluencePeer.default.connectionInfo.connectedRelay}</td>
|
<td className="mono">{Fluence.getStatus().relayPeerId!}</td>
|
||||||
<td>
|
<td>
|
||||||
<button
|
<button
|
||||||
className="btn-clipboard"
|
className="btn-clipboard"
|
||||||
onClick={() => copyToClipboard(FluencePeer.default.connectionInfo.connectedRelay!)}
|
onClick={() => copyToClipboard(Fluence.getStatus().relayPeerId!)}
|
||||||
>
|
>
|
||||||
<i className="gg-clipboard"></i>
|
<i className="gg-clipboard"></i>
|
||||||
</button>
|
</button>
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
* This file is auto-generated. Do not edit manually: changes may be erased.
|
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||||
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||||
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||||
* Aqua version: 0.3.0-224
|
* Aqua version: 0.3.0-226
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import { FluencePeer } from '@fluencelabs/fluence';
|
import { Fluence, FluencePeer } from '@fluencelabs/fluence';
|
||||||
import {
|
import {
|
||||||
ResultCodes,
|
ResultCodes,
|
||||||
RequestFlow,
|
RequestFlow,
|
||||||
@ -27,10 +27,10 @@ export function registerHelloWorld(peer: FluencePeer, serviceId: string, service
|
|||||||
let peer: FluencePeer;
|
let peer: FluencePeer;
|
||||||
let serviceId: any;
|
let serviceId: any;
|
||||||
let service: any;
|
let service: any;
|
||||||
if (args[0] instanceof FluencePeer) {
|
if (FluencePeer.isInstance(args[0])) {
|
||||||
peer = args[0];
|
peer = args[0];
|
||||||
} else {
|
} else {
|
||||||
peer = FluencePeer.default;
|
peer = Fluence.getPeer();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof args[0] === 'string') {
|
if (typeof args[0] === 'string') {
|
||||||
@ -39,7 +39,12 @@ export function registerHelloWorld(peer: FluencePeer, serviceId: string, service
|
|||||||
serviceId = args[1];
|
serviceId = args[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') {
|
// Figuring out which overload is the service.
|
||||||
|
// If the first argument is not Fluence Peer and it is an object, then it can only be the service def
|
||||||
|
// If the first argument is peer, we are checking further. The second argument might either be
|
||||||
|
// an object, that it must be the service object
|
||||||
|
// or a string, which is the service id. In that case the service is the third argument
|
||||||
|
if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') {
|
||||||
service = args[0];
|
service = args[0];
|
||||||
} else if (typeof args[1] === 'object') {
|
} else if (typeof args[1] === 'object') {
|
||||||
service = args[1];
|
service = args[1];
|
||||||
@ -86,10 +91,10 @@ export function registerHelloPeer(peer: FluencePeer, serviceId: string, service:
|
|||||||
let peer: FluencePeer;
|
let peer: FluencePeer;
|
||||||
let serviceId: any;
|
let serviceId: any;
|
||||||
let service: any;
|
let service: any;
|
||||||
if (args[0] instanceof FluencePeer) {
|
if (FluencePeer.isInstance(args[0])) {
|
||||||
peer = args[0];
|
peer = args[0];
|
||||||
} else {
|
} else {
|
||||||
peer = FluencePeer.default;
|
peer = Fluence.getPeer();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof args[0] === 'string') {
|
if (typeof args[0] === 'string') {
|
||||||
@ -101,7 +106,12 @@ export function registerHelloPeer(peer: FluencePeer, serviceId: string, service:
|
|||||||
serviceId = "HelloPeer"
|
serviceId = "HelloPeer"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') {
|
// Figuring out which overload is the service.
|
||||||
|
// If the first argument is not Fluence Peer and it is an object, then it can only be the service def
|
||||||
|
// If the first argument is peer, we are checking further. The second argument might either be
|
||||||
|
// an object, that it must be the service object
|
||||||
|
// or a string, which is the service id. In that case the service is the third argument
|
||||||
|
if (!(FluencePeer.isInstance(args[0])) && typeof args[0] === 'object') {
|
||||||
service = args[0];
|
service = args[0];
|
||||||
} else if (typeof args[1] === 'object') {
|
} else if (typeof args[1] === 'object') {
|
||||||
service = args[1];
|
service = args[1];
|
||||||
@ -144,13 +154,13 @@ export function registerHelloPeer(peer: FluencePeer, serviceId: string, service:
|
|||||||
let targetPeerId: any;
|
let targetPeerId: any;
|
||||||
let targetRelayPeerId: any;
|
let targetRelayPeerId: any;
|
||||||
let config: any;
|
let config: any;
|
||||||
if (args[0] instanceof FluencePeer) {
|
if (FluencePeer.isInstance(args[0])) {
|
||||||
peer = args[0];
|
peer = args[0];
|
||||||
targetPeerId = args[1];
|
targetPeerId = args[1];
|
||||||
targetRelayPeerId = args[2];
|
targetRelayPeerId = args[2];
|
||||||
config = args[3];
|
config = args[3];
|
||||||
} else {
|
} else {
|
||||||
peer = FluencePeer.default;
|
peer = Fluence.getPeer();
|
||||||
targetPeerId = args[0];
|
targetPeerId = args[0];
|
||||||
targetRelayPeerId = args[1];
|
targetRelayPeerId = args[1];
|
||||||
config = args[2];
|
config = args[2];
|
||||||
@ -219,7 +229,7 @@ config = args[2];
|
|||||||
)
|
)
|
||||||
.configHandler((h) => {
|
.configHandler((h) => {
|
||||||
h.on('getDataSrv', '-relay-', () => {
|
h.on('getDataSrv', '-relay-', () => {
|
||||||
return peer.connectionInfo.connectedRelay ;
|
return peer.getStatus().relayPeerId;
|
||||||
});
|
});
|
||||||
h.on('getDataSrv', 'targetPeerId', () => {return targetPeerId;});
|
h.on('getDataSrv', 'targetPeerId', () => {return targetPeerId;});
|
||||||
h.on('getDataSrv', 'targetRelayPeerId', () => {return targetRelayPeerId;});
|
h.on('getDataSrv', 'targetRelayPeerId', () => {return targetRelayPeerId;});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user