我正在将一个第三方js库用于VoIP功能。该库基于连接,断开连接,进行呼叫等的WebSocket事件。
现在,问题在于将状态事件与操作绑定。
例如,这是连接到VoIP服务器的代码
var VoIP = create({
call: {
callDefaults: {
sendInitialVideo: false
}
},
logs: {
logLevel: "SILENT"
},
authentication: {
subscription: {
server: "spidr-ucc.genband.com"
},
websocket: {
server: "spidr-ucc.genband.com"
}
}
});
为了听事件,我们说一个连接,有一个事件监听器
VoIP.on("call:stateChange", function (params) {
});
并且在HTML页面上有一个按钮,如果用户单击该按钮,API将尝试建立连接。
<button id="makeConnection" value="connect" />
$("#makeConnection").on("click",function(){
doConnect();
});
function doConnect(){
VoIP.connect({
username: username,
password: password
});
}
[现在,我要以一种方式编程,当用户单击按钮时,它将调用VoIP.connect
API,并以callback
或then
的形式返回状态。
因此,在$("makeConnection")
函数内部,我想要类似的东西,它可以建立连接并返回状态,这样我就不必管理状态更改并使连接动作有所不同。
doConnect().Onstate(function(status){
});
function doConnect(){
VoIP.connect({
username: username,
password: password
});
return {
onState(callback) {
VoIP.on("call:stateChange", callback);
}
};
}