Open Channel between Server & UI

Provides a 2-way communication channel (full-duplex) between the server and clients using a UI, working over the ports 80 (ws) and 443 (wss)

Communication based on JSON messages

Communication achieve using streams of messages; in ESUI these messages are JSON strings with type and message properties.

Messages can be reply individually or broadcast to all the available WS connections

Session based connection

Each separate connection for the WS has its own session, and in ESUI each connection comes with the User ID, allowing the tracking of each message to its owner



Web Chat

The Web Chat allows broadcast communication between all the users, using an Alias which can be modified in the Permissions window.

Currently the web chat holds up to 100 messages in memory, before it starts rotating the messages, this size can be change from the configuration.

It can also be hide from the _main.js configuration or disabled entirely from the server configuration.

The chat functionality can potentially be change to broadcast to one single user, chat among the members of a specific group.


Web Analytics

Web Analytics logs most of the user activity, this means clicks, queries, filters, tab change,…

All these logs have timestamp, user id, session id, and any other metadata specific of the event

Web Analytics uses the web socket, since the web socket requires no reply from the server, which reduces any lag in the user interface

Sample Analytic Document

{
  "_index": "esui_analytics",
  "_type": "_doc",
  "_id": "PXsCKXUBwkmedy",
  "_score": 1.0,
  "_source": {
    "type": "analytics",
    "msg": {
      "name": "SEARCH_DIRECT_URL",
      "priority": 3,
      "metadata": {
        "endpoint": "search",
        "index": "tmdb",
        "queryTime": 36,
        "total": 55607,
        "docIDs": [ "43000", "43002" ],
        "queryResponseID": "97220ae3e58451fd",
        "sort": "_score:desc",
        "queryString": "",
        "queryID": "dc4d47f3d20b7cfdc",
        "page": 1
      },
      "type": "search",
      "source": "/search/movies",
      "user": {
        "userId": "9c0ca8b5a59faa69",
        "sessionId": "c814f9ebe4cfe830c46b1ea5c389"
      },
      "timestamp": 1602710811827
    }
  }
}



  • No labels