Как получать уведомления в пользовательских приложениях? - PullRequest
0 голосов
/ 25 октября 2018

В блокчейне я отправил событие, связанное с конкретной транзакцией.Я также подписался на событие в моем API транзакции.Но что мне делать после подписки на событие в API?Я не знаю, как генерировать уведомления в моем клиентском или пользовательском приложении, используя это подписанное событие, которое было отправлено концом блокчейна.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать WebSocket для получения событий, происходящих по URL, с помощью WebSocket в JS.

class Events {

      constructor() {

        // Listen for events
        this.socket = new WebSocket(Events.URL_TRANSACTION);
        this.socket.addEventListener('open', evt => this.doSocketOpen(evt));
        this.socket.addEventListener('close', evt => this.doSocketClose(evt));
        this.socket.addEventListener('message', evt => this.doSocketMessage(evt));

        // Load initial data
        this.xhr = new XMLHttpRequest();
        this.xhr.addEventListener('load', evt => this.doInitialLoad1(evt));
        this.xhr.open('GET', Events.URL_ASSET1, true);
        this.xhr.send(null);

      }

      // Initial data loaded
      doInitialLoad1(evt) {

        var data = JSON.parse(this.xhr.responseText);
        console.log(data);

      }


      // FYI
      doSocketClose(evt) {
        console.log('Close.');
      }

      // Transaction has taken place
      doSocketMessage(evt) {

        let data = JSON.parse(evt.data); // getting event data here
        console.log(data);

      }

      // FYI
      doSocketOpen(evt) {
        console.log('Open.');
      }
    }

    Events.newData = '';
    Events.URL_ASSET1 = 'http://localhost:3000/api/org.demo.SampleAsset';
    Events.URL_TRANSACTION = 'ws://localhost:3000';
    let app = new Events();

Выше кода будет непрерывно отслеживать заданный URL и, если произойдет какое-либо событие, он вызовет функцию doSocketMessage().

...