事件监听器似乎没有触发

问题描述 投票:0回答:1

我正在与Asterisk ARI Node.js client合作,并希望听取某些事件,然后执行一个动作。根据我在连接到服务器后的理解,您可以为通过WebSockets发布的事件设置几种不同类型的事件侦听器来执行任务。在我的下面的代码中,即使我触发这些特定事件并且可以通过WSCat连接并观看事件流,我也不会收到任何输出。

我正在构建的应用程序应该只监听要发生的事件并更新数据库。我永远不需要通过HTTP请求访问Node应用程序,这就是我在每次请求服务器时都禁止返回的原因。我的最终目标是让这个应用程序坐在服务器上对事件作出反应。

'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);
    })
});
node.js asterisk asterisk-ari
1个回答
0
投票

为什么要创建服务器呢?您可以测试以下内容。

'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);
    });
© www.soinside.com 2019 - 2024. All rights reserved.