节点 http 客户端在连接超时后重新连接



我一直在使用一个名为 icy 的包,它使用 Node v8.11.3 中的 Http 客户端。

我正在连接到具有连续音频的流媒体 Icecast 服务器。

代码如下所示:

icy.get(url, (res) => {
res.on('end', (e) => console.log('connection ends')); // end of connection
res.on('metadata' => () => {...}); // metadata handler
}

当 Icecast 服务器重新启动或超时时,问题就出现了。

我希望该函数在超时后尝试重新连接,但在文档中找不到它的选项。

任何帮助将不胜感激。

干杯!

您需要捕获错误事件和流事件的完成:

const icy = require('icy');
var url = 'http://ice4.lagrosseradio.info/lagrosseradio-metal-024.mp3';
(function play() {
this.count = 0
this.timeout
function restart(error) {
this.count++;
console.error(this.count + ' reconnect...');
clearTimeout(this.timeout);
this.timeout = setTimeout(play, 100);
}
const client = icy.get(url, function(res) {
res.on('metadata', function(metadata) {
console.log(icy.parse(metadata));
});
client.on('close', function(error) {
restart(error);
});
});
client.on('error', function(error) {
restart(error);
});
})();

相关内容

  • 没有找到相关文章

最新更新