我有一个示例Node.js脚本:
var mdns = require('mdns');
var browser = mdns.createBrowser(mdns.tcp('http'));
browser.on('error', function (error) {
console.log("error");
console.log(error);
});
browser.on('serviceUp', function (service) {
console.log("serviceUp");
console.log(service);
});
browser.start();在我的Mac电脑上,它工作正常,找到了两种服务。如果我在运行Raspbean的Raspberry PI 2上运行完全相同的脚本(连接到同一个网络),我将得到以下输出:
pi@raspberrypi ~ $ node mdns.js
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
error
{ [Error: getaddrinfo -3008] code: -3008, errno: -3008, syscall: 'getaddrinfo' }
error
{ [Error: getaddrinfo -3008] code: -3008, errno: -3008, syscall: 'getaddrinfo' }一个issue on the mdns GitHub声明忽略这些警告是公平的。
但是这两个错误呢?是我的树莓派的配置问题吗?
发布于 2015-04-22 15:12:51
在这个GitHub问题上找到了一个解决方案:mdns/issues/130
在mdns中修改lib/browser.js中的Browser.defaultResolverSequence。
Browser.defaultResolverSequence = [
rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})
, rst.makeAddressesUnique()
];发布于 2016-04-13 17:12:12
在本地修改节点模块代码是一种不好的做法。
在创建mdns浏览器时,最好执行以下操作:
var sequence = [
mdns.rst.DNSServiceResolve(),
'DNSServiceGetAddrInfo' in mdns.dns_sd ? mdns.rst.DNSServiceGetAddrInfo() : mdns.rst.getaddrinfo({families:[4]}),
mdns.rst.makeAddressesUnique()
];
var browser = mdns.createBrowser(mdns.tcp('http'), {resolverSequence: sequence});就像在这个评论中说的:mdns/issues/130#issuecomment-120731155
因此,它将避免bug,并允许每个在项目上工作的人获得相同的版本,而不必修改本地mdns代码。
https://stackoverflow.com/questions/29589543
复制相似问题