Skip to main content

Prerequisites

  • Ability to establish a WebSocket connection using any programming language or tool that support the WebSocket protocol

About Subscriptions

Subscriptions are a source of on-the-fly real-time Manifest data access. Using subscriptions in an external system clients can get real-time updates on changes inside of the Manifest platform without the necessity to make extra requests.

How to Set-up Subscriptions

  • To establish connection to GraphQL subscriptions from a source outside Manifest a WebSocket protocol usage is required.
  • Use the following connection string in your WebSocket library or tool to establish connection:
    • <protocol>://<subdomain>.<host>/socket.io.v4/?transport=websocket&EIO=4&token=<jwt_token>&<parameters>
  • Below shows what should be included in the following connection string in order to establish connections:
    • <protocol>: “wss” is used to establish a secure TLS connection. Use “ws” for On-Premise Docker connection.
    • <subdomain>: e.g. “clientname”, use your subdomain here.
    • <host>: “taqmanifest.com” or a different host you are working at. Use “localhost” for On-Premise Docker connection.
    • <jwt_token>: JWT token of any authorized on the subdomain.
    • <parameters>: entities IDs or names that you need to get updates for. If you want to use multiple subscriptions - join them using & (ampersand sign). Boolean type parameters should have value of “true” to get subscription.
  • Below are examples of the subscriptions you can get updates for:
    • newAsset<Boolean> - subscribe to all new Assets created;
    • newMeasurement<Boolean> - subscribe to all new Measurements created;
    • jobForAssetId<Integer> - subscribe to all new Jobs created referencing the Asset with ID that you specify as parameter value;
    • jobOnLocationId<Integer> - subscribe to all new Jobs created referencing the Location with ID that you specify as parameter value;
    • faultOnLocationId<Integer> - subscribe to all new Faults set on Jobs on the Location with ID that you specify as parameter value;
    • assetId<Integer> - subscribe to all updates of the Asset with ID that you specify as parameter value;
    • jobId<Integer> - subscribe to all updates of the Job with ID that you specify as parameter value;
    • userId<Integer> - subscribe to all updates of the User with ID that you specify as parameter value;
    • measurementId<Integer> - subscribe to all updates of the Measurement with ID that you specify as parameter value;
  • Additional events need to be set up using your WebSocket library or tool:
    • Send a single event with string data equal to “40” after connection is established
    • Upon every event with string data equal to “2” send an event with string data equal to “3”

Example connection string:

“wss://client.taqmanifest.com/socket.io.v4/?transport=websocket&EIO=4&token=JWT%203y4r3andsoon&newAsset=true&userId=321&jobOnLocationId=2474”