@matter/protocol 0.16.0-alpha.0-20251203-aaf94bca8 → 0.16.0-alpha.0-20251205-dfb1e1556
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/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +6 -4
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +6 -4
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/package.json +6 -6
- package/src/protocol/ExchangeManager.ts +13 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangeManager.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,0BAA0B,EAE1B,OAAO,EACP,WAAW,EACX,aAAa,EAShB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAGH,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExchangeManager.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,0BAA0B,EAE1B,OAAO,EACP,WAAW,EACX,aAAa,EAShB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAGH,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYvD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,0BAA0B,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAClC;AAED,qBAAa,eAAe;;gBAYZ,OAAO,EAAE,sBAAsB;IAqB3C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAW9C,IAAI,QAAQ,mBAEX;IAED,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,QAAQ,EAAE,eAAe;IAO5C,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;IAIzD,2BAA2B,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM;IAQjE,KAAK;YAkBG,SAAS;IAmLjB,cAAc,CAAC,aAAa,EAAE,MAAM;IAiG1C,qCAAqC,CACjC,OAAO,EAAE,cAAc,EACvB,sBAAsB,8BAAmC;CA2DhE;AAED,qBAAa,eAAe;;gBAGZ,OAAO,EAAE,OAAO;IAI5B,qBAAqB;CAOxB"}
|
|
@@ -39,7 +39,7 @@ var import_MessageReceptionState = require("./MessageReceptionState.js");
|
|
|
39
39
|
* SPDX-License-Identifier: Apache-2.0
|
|
40
40
|
*/
|
|
41
41
|
const logger = import_general.Logger.get("ExchangeManager");
|
|
42
|
-
const
|
|
42
|
+
const MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION = 30;
|
|
43
43
|
class ExchangeManager {
|
|
44
44
|
#transports;
|
|
45
45
|
#sessionManager;
|
|
@@ -324,13 +324,15 @@ class ExchangeManager {
|
|
|
324
324
|
return;
|
|
325
325
|
}
|
|
326
326
|
const sessionExchanges = Array.from(this.#exchanges.values()).filter(
|
|
327
|
-
(exchange) => exchange.session.id === sessionId && !exchange.isClosing
|
|
327
|
+
(exchange) => exchange.session.id === sessionId && !exchange.isClosing && exchange.isInitiator
|
|
328
328
|
);
|
|
329
|
-
if (sessionExchanges.length <=
|
|
329
|
+
if (sessionExchanges.length <= MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION) {
|
|
330
330
|
return;
|
|
331
331
|
}
|
|
332
332
|
const exchangeToClose = sessionExchanges[0];
|
|
333
|
-
logger.
|
|
333
|
+
logger.info(
|
|
334
|
+
`Closing oldest exchange ${exchangeToClose.id} for session ${sessionId} because of too many concurrent outgoing exchanges. Ensure to not send that many parallel messages to one peer.`
|
|
335
|
+
);
|
|
334
336
|
exchangeToClose.close().catch((error) => logger.error("Error closing exchange", error));
|
|
335
337
|
}
|
|
336
338
|
calculateMaximumPeerResponseTimeMsFor(channel, expectedProcessingTime = import_MessageChannel.DEFAULT_EXPECTED_PROCESSING_TIME) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/ExchangeManager.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA0D;AAC1D,qBAiBO;AAEP,4BAIO;AACP,oCAAuC;AACvC,6BAA4C;AAC5C,yBAA4B;AAE5B,4BAA+B;AAC/B,mBAAsE;AACtE,4BAA+B;AAC/B,6BAAwD;AACxD,mCAAsC;AAvCtC;AAAA;AAAA;AAAA;AAAA;AA0CA,MAAM,SAAS,sBAAO,IAAI,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["exchange"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExchangeManager.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,0BAA0B,EAE1B,OAAO,EACP,WAAW,EACX,aAAa,EAShB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAGH,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExchangeManager.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,0BAA0B,EAE1B,OAAO,EACP,WAAW,EACX,aAAa,EAShB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAGH,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYvD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,0BAA0B,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAClC;AAED,qBAAa,eAAe;;gBAYZ,OAAO,EAAE,sBAAsB;IAqB3C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAW9C,IAAI,QAAQ,mBAEX;IAED,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,QAAQ,EAAE,eAAe;IAO5C,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;IAIzD,2BAA2B,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM;IAQjE,KAAK;YAkBG,SAAS;IAmLjB,cAAc,CAAC,aAAa,EAAE,MAAM;IAiG1C,qCAAqC,CACjC,OAAO,EAAE,cAAc,EACvB,sBAAsB,8BAAmC;CA2DhE;AAED,qBAAa,eAAe;;gBAGZ,OAAO,EAAE,OAAO;IAI5B,qBAAqB;CAOxB"}
|
|
@@ -32,7 +32,7 @@ import { ChannelManager } from "./ChannelManager.js";
|
|
|
32
32
|
import { MessageExchange } from "./MessageExchange.js";
|
|
33
33
|
import { DuplicateMessageError } from "./MessageReceptionState.js";
|
|
34
34
|
const logger = Logger.get("ExchangeManager");
|
|
35
|
-
const
|
|
35
|
+
const MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION = 30;
|
|
36
36
|
class ExchangeManager {
|
|
37
37
|
#transports;
|
|
38
38
|
#sessionManager;
|
|
@@ -317,13 +317,15 @@ class ExchangeManager {
|
|
|
317
317
|
return;
|
|
318
318
|
}
|
|
319
319
|
const sessionExchanges = Array.from(this.#exchanges.values()).filter(
|
|
320
|
-
(exchange) => exchange.session.id === sessionId && !exchange.isClosing
|
|
320
|
+
(exchange) => exchange.session.id === sessionId && !exchange.isClosing && exchange.isInitiator
|
|
321
321
|
);
|
|
322
|
-
if (sessionExchanges.length <=
|
|
322
|
+
if (sessionExchanges.length <= MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION) {
|
|
323
323
|
return;
|
|
324
324
|
}
|
|
325
325
|
const exchangeToClose = sessionExchanges[0];
|
|
326
|
-
logger.
|
|
326
|
+
logger.info(
|
|
327
|
+
`Closing oldest exchange ${exchangeToClose.id} for session ${sessionId} because of too many concurrent outgoing exchanges. Ensure to not send that many parallel messages to one peer.`
|
|
328
|
+
);
|
|
327
329
|
exchangeToClose.close().catch((error) => logger.error("Error closing exchange", error));
|
|
328
330
|
}
|
|
329
331
|
calculateMaximumPeerResponseTimeMsFor(channel, expectedProcessingTime = DEFAULT_EXPECTED_PROCESSING_TIME) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/ExchangeManager.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAyB,cAAc,mBAAmB;AAC1D;AAAA,EACI;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP;AAAA,EACI;AAAA,EACA;AAAA,OAEG;AACP,SAAS,8BAA8B;AACvC,SAAS,mCAAmC;AAC5C,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAC/B,SAAS,QAAQ,4BAA4B,yBAAyB;AACtE,SAAS,sBAAsB;AAC/B,SAAS,uBAA+C;AACxD,SAAS,6BAA6B;AAGtC,MAAM,SAAS,OAAO,IAAI,iBAAiB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAyB,cAAc,mBAAmB;AAC1D;AAAA,EACI;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP;AAAA,EACI;AAAA,EACA;AAAA,OAEG;AACP,SAAS,8BAA8B;AACvC,SAAS,mCAAmC;AAC5C,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAC/B,SAAS,QAAQ,4BAA4B,yBAAyB;AACtE,SAAS,sBAAsB;AAC/B,SAAS,uBAA+C;AACxD,SAAS,6BAA6B;AAGtC,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAQ3C,MAAM,oDAAoD;AAYnD,MAAM,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa,oBAAI,IAA6B;AAAA,EAC9C,aAAa,oBAAI,IAA6B;AAAA,EAC9C,aAAa,oBAAI,IAA+D;AAAA,EAChF,WAAW,oBAAI,IAAmB;AAAA,EAClC,aAAa,IAAI,cAAc,IAAI;AAAA,EAC5C,WAAW;AAAA,EAEX,YAAY,SAAiC;AACzC,SAAK,cAAc,QAAQ;AAC3B,SAAK,kBAAkB,QAAQ;AAC/B,SAAK,kBAAkB,QAAQ;AAC/B,SAAK,mBAAmB,IAAI,gBAAgB,QAAQ,OAAO;AAE3D,eAAW,gBAAgB,KAAK,aAAa;AACzC,WAAK,aAAa,YAAY;AAAA,IAClC;AAEA,SAAK,WAAW,GAAG,KAAK,YAAY,OAAO,KAAK,YAAY;AAC5D,SAAK,WAAW,GAAG,KAAK,YAAY,SAAS,KAAK,eAAe;AAEjE,SAAK,WAAW,GAAG,KAAK,gBAAgB,SAAS,SAAS,aAAW;AACjE,UAAI,CAAC,QAAQ,8BAA8B;AAEvC,gBAAQ,SAAS,KAAK,cAAc,OAAO;AAAA,MAC/C;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,gBAAgB;AAAA,MACjC,SAAS,IAAI,IAAI,OAAO;AAAA,MACxB,cAAc,IAAI,IAAI,0BAA0B;AAAA,MAChD,gBAAgB,IAAI,IAAI,cAAc;AAAA,MACtC,gBAAgB,IAAI,IAAI,cAAc;AAAA,IAC1C,CAAC;AACD,QAAI,IAAI,iBAAiB,QAAQ;AACjC,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,mBAAmB,YAAoB;AACnC,WAAO,KAAK,WAAW,IAAI,UAAU;AAAA,EACzC;AAAA,EAEA,mBAAmB,YAAoB;AACnC,WAAO,KAAK,WAAW,IAAI,UAAU;AAAA,EACzC;AAAA,EAEA,mBAAmB,UAA2B;AAC1C,QAAI,KAAK,mBAAmB,SAAS,EAAE,GAAG;AACtC,YAAM,IAAI,oBAAoB,wBAAwB,SAAS,EAAE,sBAAsB;AAAA,IAC3F;AACA,SAAK,WAAW,IAAI,SAAS,IAAI,QAAQ;AAAA,EAC7C;AAAA,EAEA,iBAAiB,SAAsB,YAAoB;AACvD,WAAO,KAAK,4BAA4B,KAAK,gBAAgB,WAAW,OAAO,GAAG,UAAU;AAAA,EAChG;AAAA,EAEA,4BAA4B,SAAyB,YAAoB;AACrE,UAAM,aAAa,KAAK,iBAAiB,sBAAsB;AAC/D,UAAM,gBAAgB,aAAa;AACnC,UAAM,WAAW,gBAAgB,SAAS,KAAK,2BAA2B,OAAO,GAAG,YAAY,UAAU;AAC1G,SAAK,aAAa,eAAe,QAAQ;AACzC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,WAAW;AAChB,eAAW,YAAY,KAAK,WAAW,OAAO,GAAG;AAC7C,YAAM,SAAS,MAAM;AAAA,IACzB;AACA,eAAW,aAAa,KAAK,WAAW,KAAK,GAAG;AAC5C,WAAK,gBAAgB,SAAS;AAAA,IAClC;AACA,UAAM,qBAAqB,WAAW,KAAK,UAAU,yBAAyB,EAAE;AAAA,MAAM,WAClF,OAAO,MAAM,KAAK;AAAA,IACtB;AACA,UAAM,qBAAqB;AAAA,MACvB,MAAM,KAAK,KAAK,WAAW,OAAO,CAAC,EAAE,IAAI,cAAY,SAAS,MAAM,IAAI,CAAC;AAAA,MACzE;AAAA,IACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AACpC,SAAK,WAAW,MAAM;AAAA,EAC1B;AAAA,EAEA,MAAc,UAAU,SAAyB,cAAqB;AAClE,UAAM,SAAS,aAAa,aAAa,YAAY;AACrD,UAAM,QAAQ,MAAM,GAAG,YAAY;AACnC,UAAM,MAAM,MAAM,MAAM,GAAG,MAAM,SAAS,OAAO,mBAAmB,UAAU;AAE9E,UAAM,YAAY,OAAO,OAAO;AAEhC,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,OAAO,OAAO,gBAAgB,YAAY,SAAS;AACnD,UAAI,OAAO,OAAO,cAAc,6BAA6B;AACzD,YAAI,KAAK,SAAU;AACnB,cAAM,kBAAkB,OAAO,OAAO,gBAAgB,OAAO;AAC7D,kBACI,KAAK,gBAAgB,mBAAmB,eAAe,KACvD,KAAK,gBAAgB,sBAAsB;AAAA,UACvC;AAAA,QACJ,CAAC;AAAA,MACT,OAAO;AACH,kBAAU,KAAK,gBAAgB,WAAW,OAAO,OAAO,SAAS;AAAA,MACrE;AAEA,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI;AAAA,UACN,gCAAgC,OAAO,OAAO,SAAS,GACnD,OAAO,OAAO,iBAAiB,SACzB,sBAAsB,OAAO,OAAO,YAAY,KAChD,EACV;AAAA,QACJ;AAAA,MACJ;AAEA,gBAAU,QAAQ,OAAO,QAAQ,GAAG;AAEpC,UAAI;AACA,gBAAQ,qBAAqB,SAAS;AACtC,sBAAc;AAAA,MAClB,SAAS,GAAG;AACR,8BAAsB,OAAO,CAAC;AAC9B,sBAAc;AAAA,MAClB;AAAA,IACJ,WAAW,OAAO,OAAO,gBAAgB,YAAY,OAAO;AACxD,UAAI,KAAK,SAAU;AACnB,UAAI,OAAO,OAAO,iBAAiB,QAAW;AAC1C,cAAM,IAAI,oBAAoB,oDAAoD;AAAA,MACtF;AAEA,UAAI;AACJ,OAAC,EAAE,SAAS,SAAS,IAAI,IAAI,KAAK,gBAAgB,uBAAuB,QAAQ,GAAG;AAEpF,UAAI;AACA,gBAAQ,qBAAqB,WAAW,OAAO,OAAO,cAAc,GAAG;AACvE,sBAAc;AAAA,MAClB,SAAS,GAAG;AACR,8BAAsB,OAAO,CAAC;AAC9B,sBAAc;AAAA,MAClB;AAAA,IACJ,OAAO;AACH,YAAM,IAAI,gBAAgB,6BAA6B,OAAO,OAAO,WAAW,EAAE;AAAA,IACtF;AAEA,UAAM,gBAAgB,QAAQ,cAAc,qBACtC,QAAQ,cAAc,aACtB,QAAQ,cAAc,aAAa;AACzC,QAAI,WAAW,KAAK,WAAW,IAAI,aAAa;AAEhD,QACI,aAAa,WACZ,SAAS,QAAQ,OAAO,QAAQ,MAAM,SAAS,gBAAgB,QAAQ,cAAc,qBACxF;AACE,iBAAW;AAAA,IACf;AAEA,UAAM,kBAAkB,kBAAkB;AAAA,MACtC,QAAQ,cAAc;AAAA,MACtB,QAAQ,cAAc;AAAA,IAC1B;AACA,UAAM,qBAAqB,WAAW,KAAK;AAAA,MACvC,SAAS;AAAA,MACT,UAAU,QAAQ,cAAc;AAAA,MAChC,MAAM,QAAQ,cAAc;AAAA,MAC5B,KAAK,QAAQ;AAAA,IACjB,CAAC;AACD,QAAI,aAAa,QAAW;AACxB,UACI,SAAS,0BAA0B,QAAQ,YAC3C,SAAS,QAAQ,OAAO,OAAO,OAAO,aACrC,SAAS,aAAa,CAAC,iBAC1B;AACE,eAAO;AAAA,UACH;AAAA,UACA,SAAS,YACH,wBACA,SAAS,QAAQ,OAAO,OAAO,OAAO,YACpC,uBAAuB,SAAS,QAAQ,EAAE,OAAO,OAAO,OAAO,SAAS,KACxE,kCAAkC,SAAS,qBAAqB;AAAA,UACxE;AAAA,QACJ;AAEA,cAAM,SAAS,KAAK,kBAAkB,eAAe,IAAI,WAAW,CAAC,GAAG;AAAA,UACpE,6BAA6B,QAAQ,aAAa;AAAA,UAClD,YAAY;AAAA,QAChB,CAAC;AACD,cAAM,SAAS,MAAM;AACrB;AAAA,MACJ;AAEA,YAAM,SAAS,kBAAkB,SAAS,WAAW;AAAA,IACzD,OAAO;AACH,UAAI,KAAK,SAAU;AACnB,UAAI,QAAQ,8BAA8B;AACtC,cAAM,IAAI;AAAA,UACN,mBAAmB,OAAO,OAAO,SAAS;AAAA,QAC9C;AAAA,MACJ;AAEA,YAAM,kBAAkB,KAAK,WAAW,IAAI,QAAQ,cAAc,UAAU;AAE5E,YAAM,0BACF,iBAAiB,0BAA0B,UAC3C,gBAAgB,0BAA0B,QAAQ;AAGtD,UAAI,yBAAyB;AACzB,eAAO;AAAA,UACH,uEAAoE,gBAAgB,qBAAqB,QAAQ,QAAQ,QAAQ;AAAA,UACjI;AAAA,QACJ;AAAA,MACJ;AAEA,UACI,oBAAoB,UACpB,QAAQ,cAAc,sBACtB,CAAC,eACD,CAAC,yBACH;AACE,YAAI,mBAAmB,CAAC,QAAQ,cAAc,aAAa;AACvD,iBAAO,MAAM,kDAA+C,kBAAkB;AAC9E;AAAA,QACJ;AAEA,cAAMA,YAAW,gBAAgB;AAAA,UAC7B,KAAK,2BAA2B,MAAM,KAAK,gBAAgB,mBAAmB,SAAS,OAAO,CAAC;AAAA,UAC/F;AAAA,QACJ;AACA,aAAK,aAAa,eAAeA,SAAQ;AACzC,cAAMA,UAAS,kBAAkB,OAAO;AACxC,cAAM,gBAAgB,cAAcA,WAAU,OAAO;AAAA,MACzD,WAAW,QAAQ,cAAc,aAAa;AAC1C,cAAMA,YAAW,gBAAgB;AAAA,UAC7B,KAAK,2BAA2B,MAAM,KAAK,gBAAgB,mBAAmB,SAAS,OAAO,CAAC;AAAA,UAC/F;AAAA,QACJ;AACA,aAAK,aAAa,eAAeA,SAAQ;AACzC,cAAMA,UAAS,KAAK,kBAAkB,eAAe,IAAI,WAAW,CAAC,GAAG;AAAA,UACpE,6BAA6B,QAAQ,aAAa;AAAA,UAClD,YAAY;AAAA,QAChB,CAAC;AACD,cAAMA,UAAS,MAAM;AACrB,eAAO,MAAM,mCAAgC,kBAAkB;AAAA,MACnE,OAAO;AACH,YAAI,oBAAoB,QAAW;AAC/B,gBAAM,IAAI,gBAAgB,wBAAwB,QAAQ,cAAc,UAAU,EAAE;AAAA,QACxF;AACA,YAAI,aAAa;AACb,cAAI,QAAQ,aAAa,gBAAgB,QAAW;AAEhD,mBAAO,MAAM,iCAA8B,kBAAkB;AAAA,UACjE;AACA;AAAA,QACJ;AACA,YAAI,CAAC,iBAAiB;AAClB,iBAAO,KAAK,mCAAgC,oBAAoB,WAAW,KAAK,OAAO,CAAC;AAAA,QAC5F;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,eAAe,eAAuB;AACxC,UAAM,WAAW,KAAK,WAAW,IAAI,aAAa;AAClD,QAAI,aAAa,QAAW;AACxB,aAAO,KAAK,uBAAuB,aAAa,0CAA0C;AAC1F;AAAA,IACJ;AACA,UAAM,EAAE,QAAQ,IAAI;AACpB,SAAK,WAAW,OAAO,aAAa;AACpC,QAAI,YAAY,GAAG,OAAO,KAAK,QAAQ,8BAA8B;AACjE,aAAO;AAAA,QACH,kBAAkB,aAAa,eAAe,QAAQ,IAAI;AAAA,MAC9D;AACA,UAAI;AACA,cAAM,KAAK,cAAc,OAAO;AAAA,MACpC,SAAS,OAAO;AACZ,eAAO,MAAM,yBAAyB,QAAQ,IAAI,eAAe,KAAK;AAAA,MAC1E;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,cAAc,SAAsB;AACtC,UAAM,YAAY,QAAQ;AAC1B,UAAM,cAAc,QAAQ;AAE5B,UAAM,oBAAoB;AAC1B,QAAI,kBAAkB,kBAAkB;AAEpC;AAAA,IACJ;AACA,sBAAkB,mBAAmB;AAErC,eAAW,CAAC,gBAAgB,QAAQ,KAAK,KAAK,WAAW,QAAQ,GAAG;AAChE,UAAI,SAAS,QAAQ,OAAO,WAAW;AACnC,cAAM,SAAS,QAAQ;AAAA,MAC3B;AAAA,IACJ;AACA,QAAI,QAAQ,6BAA6B;AACrC,UAAI;AACJ,UAAI;AACA,kBAAU,KAAK,gBAAgB,qBAAqB,OAAO;AAAA,MAC/D,SAAS,GAAG;AACR,eAAO,MAAM,iCAAiC,WAAW,KAAK,CAAC;AAC/D;AAAA,MACJ;AACA,aAAO,MAAM,uBAAuB,WAAW,OAAO,SAAS,IAAI,EAAE;AACrE,UAAI,YAAY,QAAW;AACvB,cAAM,WAAW,KAAK,4BAA4B,SAAS,0BAA0B;AACrF,eAAO,MAAM,sBAAsB,SAAS,EAAE,qBAAqB,WAAW,EAAE;AAChF,YAAI;AACA,gBAAM,YAAY,IAAI,uBAAuB,QAAQ;AACrD,gBAAM,UAAU,iBAAiB;AACjC,gBAAM,UAAU,MAAM;AAAA,QAC1B,SAAS,OAAO;AACZ,cAAI,iBAAiB,0BAA0B;AAC3C,mBAAO,MAAM,yDAAyD;AAAA,UAC1E,OAAO;AACH,mBAAO,MAAM,yBAAyB,KAAK;AAAA,UAC/C;AAAA,QACJ;AACA,cAAM,SAAS,QAAQ;AAAA,MAC3B;AAAA,IACJ;AACA,QAAI,QAAQ,8BAA8B;AACtC,YAAM,QAAQ,QAAQ,OAAO,KAAK;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,aAAa,eAAuB,UAA2B;AAC3D,aAAS,OAAO,GAAG,MAAM,KAAK,eAAe,aAAa,CAAC;AAC3D,SAAK,WAAW,IAAI,eAAe,QAAQ;AAK3C,SAAK,yBAAyB,SAAS,QAAQ,EAAE;AAAA,EACrD;AAAA,EAEA,yBAAyB,WAAmB;AACxC,QAAI,cAAc,6BAA6B;AAE3C;AAAA,IACJ;AACA,UAAM,mBAAmB,MAAM,KAAK,KAAK,WAAW,OAAO,CAAC,EAAE;AAAA,MAC1D,cAAY,SAAS,QAAQ,OAAO,aAAa,CAAC,SAAS,aAAa,SAAS;AAAA,IACrF;AACA,QAAI,iBAAiB,UAAU,mDAAmD;AAC9E;AAAA,IACJ;AAGA,UAAM,kBAAkB,iBAAiB,CAAC;AAC1C,WAAO;AAAA,MACH,2BAA2B,gBAAgB,EAAE,gBAAgB,SAAS;AAAA,IAC1E;AACA,oBAAgB,MAAM,EAAE,MAAM,WAAS,OAAO,MAAM,0BAA0B,KAAK,CAAC;AAAA,EACxF;AAAA,EAEA,sCACI,SACA,yBAAyB,kCAC3B;AACE,WAAO,QAAQ;AAAA,MACX,QAAQ,QAAQ;AAAA,MAChB,KAAK,gBAAgB;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,2BAA2B,SAAiD;AACxE,WAAO;AAAA,MACH;AAAA,MACA,wBAAwB,KAAK,gBAAgB;AAAA,MAC7C,OAAO,YAAU,KAAK,gBAAgB,MAAM,KAAK,QAAQ,SAAS,MAAM;AAAA,IAC5E;AAAA,EACJ;AAAA,EAEA,aAAa,cAAuC;AAChD,UAAM,eAAe,wBAAwB;AAC7C,SAAK,WAAW;AAAA,MACZ;AAAA,MACA,aAAa,OAAO,CAAC,QAAQ,SAAS;AAClC,YAAI,gBAAgB,KAAK,aAAa,OAAO,gBAAgB;AACzD,iBAAO;AAAA,YACH,mCAAmC,OAAO,IAAI,cAAc,KAAK,UAAU,SAAS,OAAO,IAAI,sDAAsD,OAAO,cAAc;AAAA,UAC9K;AACA;AAAA,QACJ;AAEA,YAAI;AACA,eAAK,UAAU,QAAQ,IAAI,EAAE;AAAA,YAAM,WAC/B,OAAO;AAAA,cACH,oBAAoB,OAAO,IAAI;AAAA,cAC/B,iBAAiB,cAAc,MAAM,UAAU;AAAA,YACnD;AAAA,UACJ;AAAA,QACJ,SAAS,OAAO;AACZ,iBAAO;AAAA,YACH,mCAAmC,OAAO,IAAI;AAAA,YAC9C,iBAAiB,cAAc,MAAM,UAAU;AAAA,UACnD;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,gBAAgB,cAAuC;AACnD,UAAM,WAAW,KAAK,WAAW,IAAI,YAAY;AACjD,QAAI,aAAa,QAAW;AACxB;AAAA,IACJ;AACA,SAAK,WAAW,OAAO,YAAY;AAEnC,UAAM,SAAS,SACV,MAAM,EACN,MAAM,OAAK,OAAO,MAAM,kCAAkC,CAAC,CAAC,EAC5D,QAAQ,MAAM,KAAK,SAAS,OAAO,MAAM,CAAC;AAC/C,SAAK,SAAS,IAAI,MAAM;AAAA,EAC5B;AACJ;AAEO,MAAM,gBAAgB;AAAA,EACzB;AAAA,EAEA,YAAY,SAAkB;AAC1B,SAAK,mBAAmB,QAAQ;AAAA,EACpC;AAAA,EAEA,wBAAwB;AACpB,SAAK;AACL,QAAI,KAAK,mBAAmB,OAAQ;AAChC,WAAK,mBAAmB;AAAA,IAC5B;AACA,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
5
5
|
"names": ["exchange"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/protocol",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20251205-dfb1e1556",
|
|
4
4
|
"description": "Low-level APIs for Matter interaction",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"#*": "./src/*"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@matter/general": "0.16.0-alpha.0-
|
|
44
|
-
"@matter/model": "0.16.0-alpha.0-
|
|
45
|
-
"@matter/types": "0.16.0-alpha.0-
|
|
43
|
+
"@matter/general": "0.16.0-alpha.0-20251205-dfb1e1556",
|
|
44
|
+
"@matter/model": "0.16.0-alpha.0-20251205-dfb1e1556",
|
|
45
|
+
"@matter/types": "0.16.0-alpha.0-20251205-dfb1e1556"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@matter/tools": "0.16.0-alpha.0-
|
|
49
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
48
|
+
"@matter/tools": "0.16.0-alpha.0-20251205-dfb1e1556",
|
|
49
|
+
"@matter/testing": "0.16.0-alpha.0-20251205-dfb1e1556"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
52
52
|
"dist/**/*",
|
|
@@ -42,7 +42,13 @@ import { ProtocolHandler } from "./ProtocolHandler.js";
|
|
|
42
42
|
|
|
43
43
|
const logger = Logger.get("ExchangeManager");
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Maximum number of concurrent outgoing exchanges per session.
|
|
47
|
+
* We chose 30 under the assumption that each exchange has one message in flight and the usual SecureSession message
|
|
48
|
+
* counter window tracks 32 messages. So we have "2 spare messages" if really someone uses that many parallel exchanges.
|
|
49
|
+
* TODO: Change this into an exchange creation queue instead of hard limiting it.
|
|
50
|
+
*/
|
|
51
|
+
const MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION = 30;
|
|
46
52
|
|
|
47
53
|
/**
|
|
48
54
|
* Interfaces {@link ExchangeManager} with other components.
|
|
@@ -409,14 +415,17 @@ export class ExchangeManager {
|
|
|
409
415
|
return;
|
|
410
416
|
}
|
|
411
417
|
const sessionExchanges = Array.from(this.#exchanges.values()).filter(
|
|
412
|
-
exchange => exchange.session.id === sessionId && !exchange.isClosing,
|
|
418
|
+
exchange => exchange.session.id === sessionId && !exchange.isClosing && exchange.isInitiator,
|
|
413
419
|
);
|
|
414
|
-
if (sessionExchanges.length <=
|
|
420
|
+
if (sessionExchanges.length <= MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION) {
|
|
415
421
|
return;
|
|
416
422
|
}
|
|
417
423
|
// let's use the first entry in the Map as the oldest exchange and close it
|
|
424
|
+
// TODO: Adjust this logic into a Exchange creation queue instead of hard closing
|
|
418
425
|
const exchangeToClose = sessionExchanges[0];
|
|
419
|
-
logger.
|
|
426
|
+
logger.info(
|
|
427
|
+
`Closing oldest exchange ${exchangeToClose.id} for session ${sessionId} because of too many concurrent outgoing exchanges. Ensure to not send that many parallel messages to one peer.`,
|
|
428
|
+
);
|
|
420
429
|
exchangeToClose.close().catch(error => logger.error("Error closing exchange", error)); // TODO Promise??
|
|
421
430
|
}
|
|
422
431
|
|