Skip to content

Commit 99e93fa

Browse files
egasimusmradkov
authored andcommitted
fix(socket): unknown state CONNECTED actually called OPEN
1 parent 45ae2a1 commit 99e93fa

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/client.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ export class ChainlinkDataStreamsConsumer extends EventEmitter {
3333
fetchFeeds ({ timestamp, feeds }) {
3434
return this.fetcher.feeds({ timestamp, feeds });
3535
}
36-
connect () {
37-
return this.socket.setEnabled(true);
36+
async connect () {
37+
return await this.socket.setEnabled(true);
3838
}
39-
disconnect () {
40-
return this.socket.setDisabled(true);
39+
async disconnect () {
40+
return await this.socket.setEnabled(false);
4141
}
4242
get feeds () {
4343
return this.socket.feeds;

src/socket.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,27 @@ export class Socket {
4343
return this.connection?.socket.readyState || WebSocket.CLOSED;
4444
}
4545

46-
setFeeds = (feeds) => {
46+
setFeeds = async (feeds) => {
4747
if (typeof feeds === 'string') feeds = [feeds];
4848
feeds = makeSetReadOnly(new Set(feeds || []), () => {
4949
throw new Error.ReadOnlyFeedSet();
5050
});
5151
if (!this.feeds || !compareSets(this.feeds, feeds)) {
5252
this.debug('New feed count:', feeds.size);
5353
defineProperty(this, 'feeds', () => feeds);
54-
this.setEnabled(this.enabled);
54+
return await this.setEnabled(this.enabled);
5555
}
5656
}
5757

58-
setEnabled (enabled) {
58+
setEnabled = async (enabled) => {
5959
if (this.enabled != enabled) {
6060
this.debug(enabled ? 'Enabling' : 'Disabling')
6161
defineProperty(this, 'enabled', () => enabled);
62-
}
63-
if (this.enabled) {
64-
return this.connect();
65-
} else {
66-
return this.connection?.close();
62+
if (this.enabled) {
63+
return await this.connect();
64+
} else {
65+
return await this.connection?.close();
66+
}
6767
}
6868
}
6969

@@ -214,7 +214,7 @@ function afterSocketOpen (socket, callback = x => x) {
214214
once(socket, 'open', () => resolve(callback(socket)));
215215
once(socket, 'error', () => reject(new Error('afterSocketOpen: connection failed')));
216216
return
217-
case WebSocket.CONNECTED:
217+
case WebSocket.OPEN:
218218
return resolve(callback(socket));
219219
case WebSocket.CLOSING:
220220
return reject(new Error('afterSocketOpen: called on closing socket'))
@@ -230,13 +230,15 @@ function afterSocketClose (socket, callback = x => x) {
230230
return new Promise((resolve, reject)=>{
231231
switch (socket.readyState) {
232232
case WebSocket.CONNECTING:
233-
case WebSocket.CONNECTED:
233+
case WebSocket.OPEN:
234234
case WebSocket.CLOSING:
235235
return once(socket, 'close', () => resolve(callback(socket)));
236236
case WebSocket.CLOSED:
237237
return resolve(callback(socket));
238238
default:
239-
return reject(new Error('afterSocketClose: invalid WebSocket readyState'));
239+
return reject(
240+
new Error(`afterSocketClose: invalid WebSocket readyState: ${socket.readyState}`)
241+
);
240242
}
241243
})
242244
}

0 commit comments

Comments
 (0)