Skip to content

Commit 12f5ee9

Browse files
authored
Merge pull request #312 from open-rpc/fix/multiple-custom-transport-cleanup
fix: multiple custom transport cleanup
2 parents 5c9f2dc + ffcfa0e commit 12f5ee9

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/containers/Inspector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ const Inspector: React.FC<IProps> = (props) => {
207207

208208
useEffect(() => {
209209
if (selectedTransport !== undefined) {
210-
setTransport(selectedTransport!);
210+
setTransport(selectedTransport);
211211
const s: IWebTransport = selectedTransport as IWebTransport;
212212
if (s.schema !== undefined && s.schema !== true && s.schema !== false) {
213213
setTransportOptions((s.schema.examples as ExampleObject[])[0]);

src/hooks/useTransport.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const getTransportFromType = async (
2828
): Promise<Transport> => {
2929
let localTransport: any;
3030
const localTransportType = transports.find((value) => {
31-
return value.type === transport.type;
31+
return value.type === transport.type && value.name === transport.name;
3232
});
3333
if (localTransportType?.type === "websocket") {
3434
localTransport = new WebSocketTransport(uri);
@@ -74,7 +74,7 @@ const getTransportFromType = async (
7474
}
7575
public close() {
7676
intermediateTransport.unsubscribe();
77-
return intermediateTransport.sendData({
77+
intermediateTransport.sendData({
7878
internalID: 0,
7979
request: {
8080
jsonrpc: "2.0",
@@ -83,6 +83,7 @@ const getTransportFromType = async (
8383
id: 0,
8484
},
8585
});
86+
intermediateTransport.close();
8687
}
8788
}
8889
localTransport = new InterTransport();
@@ -119,6 +120,10 @@ const useTransport: TUseTransport = (transports, url, defaultTransportType, tran
119120
return localTransport.connect().then(() => {
120121
setTransportConnected(true);
121122
setTransport(localTransport);
123+
}).catch((e) => {
124+
localTransport.unsubscribe()
125+
localTransport.close();
126+
throw e;
122127
});
123128
};
124129

0 commit comments

Comments
 (0)