firefox os 如何为Firefox OS TCP套接字设置超时
我正在开发一个应用程序,该应用程序试图通过网络按顺序连接到IP列表 但是,如果套接字在几秒钟内没有连接,并且连接处于非活动状态的时间超过几秒钟,我希望关闭该套接字 例如:
firefox os 如何为Firefox OS TCP套接字设置超时,
firefox-os,javascript,sockets,firefox,tcp,firefox-os,
firefox Os,Javascript,Sockets,Firefox,Tcp,Firefox Os,我正在开发一个应用程序,该应用程序试图通过网络按顺序连接到IP列表 但是,如果套接字在几秒钟内没有连接,并且连接处于非活动状态的时间超过几秒钟,我希望关闭该套接字 例如: var socket = navigator.mozTCPSocket.open(IP, port); //would like to set timeout for connection here socket.onopen = function(event){ var serviceRequest = new Ob
var socket = navigator.mozTCPSocket.open(IP, port);
//would like to set timeout for connection here
socket.onopen = function(event){
var serviceRequest = new Object();
serviceRequest.type = "myService";
var sendStr = JSON.stringify(serviceRequest);
sendStr+="\n";
sendStr = sendStr.toString('utf-8');
socket.send(sendStr);
//and would like a timeout for receiving data here
socket.ondata = function(event){
//etc
}
}
据我所知,没有办法指定超时。如果要指定超时,应使用常用的javascript
setTimeout
,存储其id
使用TCPSocket对象上的onopen
事件取消超时。如果超时被触发。您可以在套接字上调用close
方法
var socket = navigator.mozTCPSocket.open(IP, port);
var timeout = setTimeout(function () {
socket.close()
}, timeoutDuration)
//would like to set timeout for connection here
socket.onopen = function(event){
// Prevent from timingout if open
clearTimeout(timeout)
var serviceRequest = new Object();
serviceRequest.type = "myService";
var sendStr = JSON.stringify(serviceRequest);
sendStr+="\n";
sendStr = sendStr.toString('utf-8');
socket.send(sendStr);
//and would like a timeout for receiving data here
socket.ondata = function(event){
//etc
}
}
非常感谢,我会试试这个。