Socket.io / ARI error: Emit Alert
Socket.io / ARI error: Emit Alert
我目前正在尝试添加一些错误处理,这会出现在我的 Web 应用程序的前端,但我不知道如何让 socket.io 发出警告框到目前为止的前端示例,我输入了一个扩展号码来桥接呼叫,如果该呼叫不存在则显示警报。
代码应该让它看起来更清晰一些。
客户端
点击按钮时将输入框中找到的数据发送到服务器端
$(document).on('click', '.bridge', function () {
var bridge = $('input').val();
socket.emit('bridge', bridge);
console.log(bridge)
});
服务器端
将从客户端接收到的数据存储到一个var中,然后调用stasis函数。
io.sockets.on('connection', function (socket) {
socket.on('bridge', function (data) {
bridgeCall(data);
console.log("Reached listener for bridge")
});
});
停滞功能
使用 ARI 客户端命令桥接您刚刚从客户端传递到服务器端的通道,用户将被桥接并显示在 stasis 应用程序中。如果出现错误,我正在尝试以某种方式向前端网页发出警报。
function bridgeCall(exeten) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'bridge-hold'
},
function (err, channel) {
console.log("Channel: " + exeten + " does not exist");
alert("Channel: " + exeten + " does not exist");
});
}
我只是想在前端出现错误时发出警报。
您必须发出一个客户端可以收听然后根据它采取行动的事件。
首先在您的客户端有:
socket.on("my_error",function(err){alert(err)}
然后在服务器端,将套接字传递给 bridgeCall 函数:
bridgeCall(data,socket);
然后在 bridgeCall 中,执行:
function bridgeCall(exeten,socket) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'bridge-hold'
},
function (err, channel) {
console.log("Channel: " + exeten + " does not exist");
socket.emit("my_error","Channel: " + exeten + " does not exist");
});
}
我是如何根据原始答案最终让它工作的!
首先在您的客户端上,您必须插入以下内容以接收事件以显示错误(如果有):
socket.on("error", function (err) {
$("<div title='Error'>" + err + "</div>").dialog({
modal : true,
buttons : {
Ok : function () {
$(this).dialog("close");
}
}
});
});
然后在服务器端,将套接字传递给 bridgeCall 函数:
bridgeCall(数据,套接字);
然后在 bridgeCall 中,您需要将错误消息存储在全局变量中,然后在错误函数中使用它,ARI/Stasis 这样做很奇怪,所以请执行以下操作:
function bridgeCall(exeten) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'ARI-Web-App'
},
function (err) {
if (err) {
console.log("Channel: " + exeten + " does not exist");
error = ("Channel: " + exeten + " does not exist");
Error();
}
});
}
您在 bridgeCall 末尾调用的错误函数如下所示,与服务器端套接字逻辑一起插入:
function Error() {
io.sockets.emit("error",error);
}
我目前正在尝试添加一些错误处理,这会出现在我的 Web 应用程序的前端,但我不知道如何让 socket.io 发出警告框到目前为止的前端示例,我输入了一个扩展号码来桥接呼叫,如果该呼叫不存在则显示警报。
代码应该让它看起来更清晰一些。
客户端
点击按钮时将输入框中找到的数据发送到服务器端
$(document).on('click', '.bridge', function () {
var bridge = $('input').val();
socket.emit('bridge', bridge);
console.log(bridge)
});
服务器端
将从客户端接收到的数据存储到一个var中,然后调用stasis函数。
io.sockets.on('connection', function (socket) {
socket.on('bridge', function (data) {
bridgeCall(data);
console.log("Reached listener for bridge")
});
});
停滞功能
使用 ARI 客户端命令桥接您刚刚从客户端传递到服务器端的通道,用户将被桥接并显示在 stasis 应用程序中。如果出现错误,我正在尝试以某种方式向前端网页发出警报。
function bridgeCall(exeten) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'bridge-hold'
},
function (err, channel) {
console.log("Channel: " + exeten + " does not exist");
alert("Channel: " + exeten + " does not exist");
});
}
我只是想在前端出现错误时发出警报。
您必须发出一个客户端可以收听然后根据它采取行动的事件。
首先在您的客户端有:
socket.on("my_error",function(err){alert(err)}
然后在服务器端,将套接字传递给 bridgeCall 函数:
bridgeCall(data,socket);
然后在 bridgeCall 中,执行:
function bridgeCall(exeten,socket) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'bridge-hold'
},
function (err, channel) {
console.log("Channel: " + exeten + " does not exist");
socket.emit("my_error","Channel: " + exeten + " does not exist");
});
}
我是如何根据原始答案最终让它工作的!
首先在您的客户端上,您必须插入以下内容以接收事件以显示错误(如果有):
socket.on("error", function (err) {
$("<div title='Error'>" + err + "</div>").dialog({
modal : true,
buttons : {
Ok : function () {
$(this).dialog("close");
}
}
});
});
然后在服务器端,将套接字传递给 bridgeCall 函数:
bridgeCall(数据,套接字);
然后在 bridgeCall 中,您需要将错误消息存储在全局变量中,然后在错误函数中使用它,ARI/Stasis 这样做很奇怪,所以请执行以下操作:
function bridgeCall(exeten) {
console.log("Extension being bridged: " + exeten);
client.channels.originate({
endpoint : "SIP/" + exeten,
app : 'ARI-Web-App'
},
function (err) {
if (err) {
console.log("Channel: " + exeten + " does not exist");
error = ("Channel: " + exeten + " does not exist");
Error();
}
});
}
您在 bridgeCall 末尾调用的错误函数如下所示,与服务器端套接字逻辑一起插入:
function Error() {
io.sockets.emit("error",error);
}