react-realtime-hooks 1.3.2 → 1.3.4
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/dist/index.cjs +96 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +96 -70
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1222,47 +1222,62 @@ var useWebSocket = (options) => {
|
|
|
1222
1222
|
if (socketRef.current !== null) {
|
|
1223
1223
|
return;
|
|
1224
1224
|
}
|
|
1225
|
-
const socket2 = new WebSocket(resolvedUrl, protocols);
|
|
1226
|
-
const socketEpoch = nextSocketEpochRef.current + 1;
|
|
1227
|
-
socketRef.current = socket2;
|
|
1228
|
-
socketKeyRef.current = nextSocketKey;
|
|
1229
|
-
activeSocketEpochRef.current = socketEpoch;
|
|
1230
|
-
closingSocketEpochRef.current = null;
|
|
1231
|
-
nextSocketEpochRef.current = socketEpoch;
|
|
1232
|
-
socket2.binaryType = options.binaryType ?? "blob";
|
|
1233
1225
|
commitState((current) => ({
|
|
1234
1226
|
...current,
|
|
1235
|
-
bufferedAmount:
|
|
1227
|
+
bufferedAmount: 0,
|
|
1236
1228
|
lastChangedAt: Date.now(),
|
|
1237
1229
|
status: reconnect.status === "running" || reconnect.status === "scheduled" ? "reconnecting" : "connecting"
|
|
1238
1230
|
}));
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
handleOpen(event, socket2);
|
|
1244
|
-
};
|
|
1245
|
-
const handleSocketMessage = (event) => {
|
|
1246
|
-
if (!isActiveSocketEvent(socketEpoch)) {
|
|
1231
|
+
let cancelled = false;
|
|
1232
|
+
let detachListeners = null;
|
|
1233
|
+
queueMicrotask(() => {
|
|
1234
|
+
if (cancelled) {
|
|
1247
1235
|
return;
|
|
1248
1236
|
}
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1237
|
+
const socket2 = new WebSocket(resolvedUrl, protocols);
|
|
1238
|
+
const socketEpoch = nextSocketEpochRef.current + 1;
|
|
1239
|
+
socketRef.current = socket2;
|
|
1240
|
+
socketKeyRef.current = nextSocketKey;
|
|
1241
|
+
activeSocketEpochRef.current = socketEpoch;
|
|
1242
|
+
closingSocketEpochRef.current = null;
|
|
1243
|
+
nextSocketEpochRef.current = socketEpoch;
|
|
1244
|
+
socket2.binaryType = options.binaryType ?? "blob";
|
|
1245
|
+
commitState((current) => ({
|
|
1246
|
+
...current,
|
|
1247
|
+
bufferedAmount: socket2.bufferedAmount
|
|
1248
|
+
}));
|
|
1249
|
+
const handleSocketOpen = (event) => {
|
|
1250
|
+
if (!isActiveSocketEvent(socketEpoch)) {
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1253
|
+
handleOpen(event, socket2);
|
|
1254
|
+
};
|
|
1255
|
+
const handleSocketMessage = (event) => {
|
|
1256
|
+
if (!isActiveSocketEvent(socketEpoch)) {
|
|
1257
|
+
return;
|
|
1258
|
+
}
|
|
1259
|
+
handleMessage(event);
|
|
1260
|
+
};
|
|
1261
|
+
const handleSocketError = (event) => {
|
|
1262
|
+
handleError(event, socketEpoch);
|
|
1263
|
+
};
|
|
1264
|
+
const handleSocketClose = (event) => {
|
|
1265
|
+
handleClose(event, socketEpoch);
|
|
1266
|
+
};
|
|
1267
|
+
socket2.addEventListener("open", handleSocketOpen);
|
|
1268
|
+
socket2.addEventListener("message", handleSocketMessage);
|
|
1269
|
+
socket2.addEventListener("error", handleSocketError);
|
|
1270
|
+
socket2.addEventListener("close", handleSocketClose);
|
|
1271
|
+
detachListeners = () => {
|
|
1272
|
+
socket2.removeEventListener("open", handleSocketOpen);
|
|
1273
|
+
socket2.removeEventListener("message", handleSocketMessage);
|
|
1274
|
+
socket2.removeEventListener("error", handleSocketError);
|
|
1275
|
+
socket2.removeEventListener("close", handleSocketClose);
|
|
1276
|
+
};
|
|
1277
|
+
});
|
|
1261
1278
|
return () => {
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
socket2.removeEventListener("error", handleSocketError);
|
|
1265
|
-
socket2.removeEventListener("close", handleSocketClose);
|
|
1279
|
+
cancelled = true;
|
|
1280
|
+
detachListeners?.();
|
|
1266
1281
|
};
|
|
1267
1282
|
}, [
|
|
1268
1283
|
closeSocket,
|
|
@@ -1573,55 +1588,66 @@ var useEventSource = (options) => {
|
|
|
1573
1588
|
if (eventSourceRef.current !== null) {
|
|
1574
1589
|
return;
|
|
1575
1590
|
}
|
|
1576
|
-
const source = new EventSource(resolvedUrl, {
|
|
1577
|
-
withCredentials: options.withCredentials ?? false
|
|
1578
|
-
});
|
|
1579
|
-
const sourceEpoch = nextEventSourceEpochRef.current + 1;
|
|
1580
|
-
eventSourceRef.current = source;
|
|
1581
|
-
eventSourceKeyRef.current = nextEventSourceKey;
|
|
1582
|
-
activeEventSourceEpochRef.current = sourceEpoch;
|
|
1583
|
-
nextEventSourceEpochRef.current = sourceEpoch;
|
|
1584
1591
|
commitState((current) => ({
|
|
1585
1592
|
...current,
|
|
1586
1593
|
lastChangedAt: Date.now(),
|
|
1587
1594
|
status: reconnect.status === "running" || reconnect.status === "scheduled" ? "reconnecting" : "connecting"
|
|
1588
1595
|
}));
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
handleOpen(event, source);
|
|
1594
|
-
};
|
|
1595
|
-
const handleSourceMessage = (event) => {
|
|
1596
|
-
if (!isActiveEventSourceEvent(sourceEpoch)) {
|
|
1596
|
+
let cancelled = false;
|
|
1597
|
+
let detachListeners = null;
|
|
1598
|
+
queueMicrotask(() => {
|
|
1599
|
+
if (cancelled) {
|
|
1597
1600
|
return;
|
|
1598
1601
|
}
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
const handler = (event) => {
|
|
1602
|
+
const source = new EventSource(resolvedUrl, {
|
|
1603
|
+
withCredentials: options.withCredentials ?? false
|
|
1604
|
+
});
|
|
1605
|
+
const sourceEpoch = nextEventSourceEpochRef.current + 1;
|
|
1606
|
+
eventSourceRef.current = source;
|
|
1607
|
+
eventSourceKeyRef.current = nextEventSourceKey;
|
|
1608
|
+
activeEventSourceEpochRef.current = sourceEpoch;
|
|
1609
|
+
nextEventSourceEpochRef.current = sourceEpoch;
|
|
1610
|
+
const handleSourceOpen = (event) => {
|
|
1609
1611
|
if (!isActiveEventSourceEvent(sourceEpoch)) {
|
|
1610
1612
|
return;
|
|
1611
1613
|
}
|
|
1612
|
-
|
|
1614
|
+
handleOpen(event, source);
|
|
1613
1615
|
};
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1616
|
+
const handleSourceMessage = (event) => {
|
|
1617
|
+
if (!isActiveEventSourceEvent(sourceEpoch)) {
|
|
1618
|
+
return;
|
|
1619
|
+
}
|
|
1620
|
+
commitParsedMessage("message", event, false);
|
|
1621
|
+
};
|
|
1622
|
+
const namedEventHandlers = /* @__PURE__ */ new Map();
|
|
1623
|
+
const handleSourceError = (event) => {
|
|
1624
|
+
handleError(event, source, sourceEpoch);
|
|
1625
|
+
};
|
|
1626
|
+
source.addEventListener("open", handleSourceOpen);
|
|
1627
|
+
source.addEventListener("message", handleSourceMessage);
|
|
1628
|
+
for (const eventName of namedEvents) {
|
|
1629
|
+
const handler = (event) => {
|
|
1630
|
+
if (!isActiveEventSourceEvent(sourceEpoch)) {
|
|
1631
|
+
return;
|
|
1632
|
+
}
|
|
1633
|
+
commitParsedMessage(eventName, event, true);
|
|
1634
|
+
};
|
|
1635
|
+
namedEventHandlers.set(eventName, handler);
|
|
1636
|
+
source.addEventListener(eventName, handler);
|
|
1623
1637
|
}
|
|
1624
|
-
source.
|
|
1638
|
+
source.addEventListener("error", handleSourceError);
|
|
1639
|
+
detachListeners = () => {
|
|
1640
|
+
source.removeEventListener("open", handleSourceOpen);
|
|
1641
|
+
source.removeEventListener("message", handleSourceMessage);
|
|
1642
|
+
for (const [eventName, handler] of namedEventHandlers) {
|
|
1643
|
+
source.removeEventListener(eventName, handler);
|
|
1644
|
+
}
|
|
1645
|
+
source.removeEventListener("error", handleSourceError);
|
|
1646
|
+
};
|
|
1647
|
+
});
|
|
1648
|
+
return () => {
|
|
1649
|
+
cancelled = true;
|
|
1650
|
+
detachListeners?.();
|
|
1625
1651
|
};
|
|
1626
1652
|
}, [
|
|
1627
1653
|
closeEventSource,
|