控件何时使用JQuery/socket.io调用ARI函数



所以我目前有两个函数被调用,当我添加一个调用桥,和两个函数被自动调用,所以我试图使用JQuery,所以他们只被调用当一个按钮被点击,然后我可以从那里在服务器端工作的东西。

同时使用ARI客户端和套接字可能会有问题。总之,我不太确定我还在学习,因为我在前进。

问题是此时抛出一个错误,说$没有定义。

JQuery确实工作,我有另一个文件正在调用这是所有的JQuery和处理我的套接字。IO客户端。

    $("#mute").click(function () {
        alert("Handler for .click() called.");
        channel.mute({
            channelId : 111
        },
            function (err) {});
    });
    $("#kick").click(function () {
        alert("Handler for .click() called.");
        channel.hangup({
            channelId : 111
        },
function (err) {});
    });

有谁有使用这两种方法的经验,或者有什么建议吗?

完整代码清单;

var ari = require('ari-client');
var util = require('util');
var chanArr = [];
var test;
var mute;
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
//ARI client
ari.connect('http://localhost:8088', 'asterisk', 'asterisk', clientLoaded);
function clientLoaded(err, client) {
    if (err) {
        throw err;
    }
    // find or create a holding bridges
    var bridge = null;
    client.bridges.list(function (err, bridges) {
        if (err) {
            throw err;
        }
        bridge = bridges.filter(function (candidate) {
                return candidate.bridge_type === 'mixing';
            })[0];
        if (bridge) {
            console.log(util.format('Using bridge %s', bridge.id));
        } else {
            client.bridges.create({
                type : 'mixing'
            }, function (err, newBridge) {
                if (err) {
                    throw err;
                }
                bridge = newBridge;
                console.log(util.format('Created bridge %s', bridge.id));
            });
        }
    });
    // handler for StasisStart event
    function stasisStart(event, channel) {
        console.log(util.format(
                'Channel %s just entered our application, adding it to bridge %s',
                channel.name,
                bridge.id));
        channel.answer(function (err) {
            if (err) {
                throw err;
            }
            bridge.addChannel({
                channel : channel.id
            }, function (err) {
                var id = chanArr.push(channel.name)
                    console.log("Value: " + test);
                test = channel.name;
                updateSip);
                if (err) {
                    throw err;
                }
                //If else statement to start music for first user entering channel, music will stop once more than 1 enters the channel.
                if (chanArr.length <= 1) {
                    bridge.startMoh(function (err) {
                        if (err) {
                            throw err;
                        }
                    });
                } else if (chanArr.length === 2) {
                    bridge.stopMoh(function (err) {
                        if (err) {
                            throw err;
                        }
                    });
                } else {}
            });
        });
        $("#mute").click(function () {
        alert("Handler for .click() called.");
        channel.mute({
            channelId : 111
        },
            function (err) {});
    });
    $("#kick").click(function () {
        alert("Handler for .click() called.");
        channel.hangup({
            channelId : 111
        },
    }
    // handler for StasisEnd event
    function stasisEnd(event, channel) {
        console.log(util.format(
                'Channel %s just left our application', channel.name));
        console.log(channel.name);
        var index = chanArr.indexOf(channel.name);
        chanArr.splice(index, 1);
        updateSip();
    }
    client.on('StasisStart', stasisStart);
    client.on('StasisEnd', stasisEnd);
    client.start('bridge-hold');
}
//Socket.io logic here
server.listen(3009, function () {
    console.log('listening on *:3009');
});
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
    res.sendfile(__dirname + "/testPage.html");
});
io.sockets.on('connection', function (data) {
    updateSip();
});
io.sockets.on('muting', function (data) {
    mute = data;
    console.log("client side:" + mute);
});
function updateSip() {
    console.log("Value: " + test);
    io.sockets.emit('sip', chanArr);
}

如果$未定义,则表示jQuery不可用。如果我们能在页面上看到更多结构化的代码,那么为什么它不可用就更清楚了。

相关内容

  • 没有找到相关文章

最新更新