1
我正在編寫一個域搜索應用程序,我只是簡單地檢查.com域的可用性。它的基本工作正常,問題是當我有多個請求,特別是多個搜索()的它給我的多個nodejs請求實時搜索
{ [Error: connect Unknown system errno 37]
code: 'Unknown system errno 37',
errno: 'Unknown system errno 37',
syscall: 'connect' }
events.js:72
throw er; // Unhandled 'error' event
^
Error: connect Unknown system errno 37
at errnoException (net.js:863:11)
at connect (net.js:726:19)
at net.js:804:9
at asyncCallback (dns.js:68:16)
at Object.onanswer [as oncomplete] (dns.js:121:9)
一個錯誤,我需要更改或添加什麼,使工作?三項賽?排隊?
(編輯爲DC5)
var searches = ['test1', 'test2', 'test3'];
search(searches.shift());
function chkconnections(z) {
if (connections <= 0) {
if (searches.length >= 1) {
process.nextTick(function() {
search(searches.shift());
});
}
}
}
function search(x) {
dotCom.connect(port, host, function() {
dotCom.write('domain ' + x + '.com\r\n');
count++;
connections++;
});
dotCom.on('data', function(data) {
c++;
if (c == 2) {
dotComStatus = data.split('\n')[1];
dotCom.on('close', function() {
connections--;
chkconnections();
count--;
if (dotComStatus.indexOf("No match for domain") > -1)
{
console.log(x + ".com is available");
} else {
console.log(x + ".com is taken");
}
});
}
});
}
如果我在搜索功能中爲.net和.org添加一個.connect,使得它每次運行該函數都有三個連接,並且我有多個搜索,它會拋出一個Error:read ECONNRESET。解決這個問題的最佳做法是什麼? – archytect
可能有許多不同的方法來做到這一點。一種簡單的方法是將查詢放入數組中,然後在完成時調用search(arr。shift()),直到數組爲空。 (查看更新後的代碼) – dc5
最後一條評論回答了編輯前的問題。不知道你的代碼在你嘗試時看起來是什麼樣的,但是聽起來好像你只是把它放入了它之前(或類似的)的狀態。沒有必要嘗試在搜索功能中做更多的工作。稍微重構一下代碼,以便您可以使用不同的頂級域名調用搜索功能。 – dc5