@dcos/connection-manager

This package allows to manage connections inside the browser and order them in a queue by priority.

Usage no npm install needed!

<script type="module">
  import dcosConnectionManager from 'https://cdn.skypack.dev/@dcos/connection-manager';
</script>

README

Connection Manager Build Status

This package allows to manage connections inside the browser and order them in a queue by priority.

Browsers can open only a limited amount of connections so when you urgently need one there may not be a slot. This package solves the issue by providing a manager that enqueues all requested connections and priorities them accordingly.

Usage

import { XHRConnection, ConnectionEvent } from "@dcos/connections";
import ConnectionManager from "@dcos/connection-manager";

const connection = new XHRConnection("http://127.0.0.1");
connection.on(ConnectionEvent.CLOSE, function(event) {
  // doing something with event.target.response
});
ConnectionManager.enqueue(connection);

Connection will be opened by the manager once there's a slot available.

Connection types

At the moment connection-manager package exposes only one connection XHRConnection that wraps XmlHttpRequest

const connection = new XHRConnection("http://127.0.0.1", {
  method: "POST",
  body: "{}",
  contentType: "json"
});

Creating your own connection type

If you want to create your own connection type that will be compatible with the manager please extend AbstractConnection. Have a look at Connections/AbstractConnection.js for more info.