Слушатели событий, похоже, не запускаются - PullRequest
0 голосов
/ 28 марта 2019

Я работаю с клиентом Asterisk ARI Node.js и хотел бы прослушать определенные события и затем выполнить действие.Насколько я понимаю, после подключения к серверу вы можете настроить несколько различных типов прослушивателей событий для публикации событий через WebSockets для выполнения задач.В моем коде ниже я не получаю никакого вывода, хотя я запускаю эти конкретные события и могу подключиться через WSCat и наблюдать за потоковыми событиями.

Приложение, которое я создаю, должно просто прослушивать происходящие события и обновлять базу данных.Мне никогда не потребуется доступ к приложению Node через HTTP-запрос, поэтому я возвращаю запрещенный при каждом запросе к серверу.Моя конечная цель - просто разместить приложение на сервере, реагирующем на события.

'use strict';
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;

const client = require('ari-client');
const util = require('util');

const server = http.createServer((req, res) => {
    res.statusCode = 403;
    res.end('FORBIDDEN');
});

server.listen(port, hostname, () => {
    client.connect('http://127.0.0.1:8088', 'username', 'password')
        .then(function(ari) {
            ari.on('DeviceStateChanged', function(event) {
                console.log(event);
            })
            ari.on('ChannelCreated', function(event) {
                console.log(event);
            })
            ari.on('BridgeCreated', function(event) {
                console.log(event);
            })
            ari.on('StasisStart', function(event) {
                console.log(event);
            })
            ari.on('PeerStatusChange', function(event) {
                console.log('blah', event);
            })
            ari.on('Dial', function(event) {
                console.log('Dial', event);
            })
    })
    .catch(function(err) {
        console.log(err);
    })
});

1 Ответ

0 голосов
/ 28 марта 2019

Зачем тогда создавать сервер?Вы можете проверить следующее.

'use strict';
const client = require('ari-client');
const util = require('util');

client.connect('http://127.0.0.1:8088', 'username', 'password')
        .then(function(ari) {
            ari.on('DeviceStateChanged', function(event) {
                console.log(event);
            })
            ari.on('ChannelCreated', function(event) {
                console.log(event);
            })
            ari.on('BridgeCreated', function(event) {
                console.log(event);
            })
            ari.on('StasisStart', function(event) {
                console.log(event);
            })
            ari.on('PeerStatusChange', function(event) {
                console.log('blah', event);
            })
            ari.on('Dial', function(event) {
                console.log('Dial', event);
            })
    })
    .catch(function(err) {
        console.log(err);
    });
...