Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Setup SignalR communication about position.

We strongly recommend using SignalR SDKs.

For negotiation we use HubConnectionBuilder. The following negotiate endpoint we provide in withUrl method:

Negotiate endpoint

https://ombori-queue-dev.azure-api.net/api/organizations/xyz/queues/c179a3a2-9fd7-4e12-96e7-19d9e957e094/positions/5387920d-dfdd-4904-8a51-3f007effcffa?userId=${userId}

userId - this can be device identifier or random guid/uuid.

  let hubConnectionBuilder = new signalR.HubConnectionBuilder()
    .withUrl(url, options);

  const hubConnection = hubConnectionBuilder.build();

  hubConnection
    .start()
    .then(() => console.log('Queue service connection is established'))
    .catch((err) => {
      console.error(err);
      throw err;
    });



When connection is established you need to subscribe for specific hubMethodName. In our case it is position-update:

const positionUpdateHubMethodName = 'position-update'
hubConnection.on(positionUpdateHubMethodName, (message: any) => {
        const position = JSON.parse(message) as Position;
        if (position) {
              ...
        }
      });



The position contains the following properties:

{
    "id": "5387920d-dfdd-4904-8a51-3f007effcffa",
    "_ts": 1605613557,
    "status": "notified",
    "priority": 0,
    "location": null,
    "label": "A3",
    "customerInfo": [
        "Jörgen",
        "Svensson",
        "2200001910105"
    ],
    "type": "anonymous",
    "queue": "c179a3a2-9fd7-4e12-96e7-19d9e957e094",
    "createdAt": "2020-11-17T11:45:57.114Z",
    "numberInTheQueue": 6
}

  • No labels