标签: mdns

无法在 Node WebKit 应用程序中运行 Node.js 模块 mdns

我有一个节点 webkit 应用程序,它使用 mdns 模块从 Mac(使用 Mavericks)发布 Bonjour 服务。当我运行服务器代码时node server.js一切正常,但是当运行使用相同服务器代码的节点 webkit 应用程序时,我收到此错误:

"Uncaught Error: dlopen(/Users/me/myfolder/node_modules/mdns/build/Release/dns_sd_bindings.node, 1): no suitable image found.  Did find:
    /Users/me/myfolder/node_modules/mdns/build/Release/dns_sd_bindings.node: mach-o, but wrong architecture", source: /Users/me/myfolder/node_modules/mdns/lib/dns_sd.js (35)
Run Code Online (Sandbox Code Playgroud)

显然,当您安装该mdns模块时npm,它是为 x86 架构构建的,而我需要它用于 i386,因为 node-webkit 是为 i386 构建的(我通过阅读此线程发现了这一点: http: //forums.macrumors.com/showthread .php?t=879780 )。您可以通过在终端中运行以下命令来验证它:

$ lipo -info /Applications/node-webkit.app/Contents/MacOS/node-webkit 
Non-fat file: /Applications/node-webkit.app/Contents/MacOS/node-webkit is architecture: i386
Run Code Online (Sandbox Code Playgroud)

我发现这个链接建议了一个解决方案:https://github.com/rogerwang/node-webkit/issues/296对于另一个模块(节点代理)。建议的说明是:

I managed to build a 32-bit version of node-proxy as follows:
I installed nw-gyp 
I ran nw-gyp configure --target=0.3.6 …
Run Code Online (Sandbox Code Playgroud)

mdns bonjour node.js gyp node-webkit

3
推荐指数
1
解决办法
2588
查看次数

绑定到 mac os x 上的 mdns 多播地址

我想绑定到 mac os x 计算机上的多播 DNS 组和端口,以构建一些 bonjour 功能的原型。但是,当我尝试绑定到端口时,出现以下错误(顺便说一句,这是从 python 运行的):

socket.error: [Errno 48] Address already in use
Run Code Online (Sandbox Code Playgroud)

看起来 mDNSResponder 绑定到地址:未设置 SO_REUSEADDR 的端口。

是否可以以允许其他代理绑定到地址:端口组合的方式运行 mDNSResponder?

python sockets macos mdns multicast

2
推荐指数
1
解决办法
2852
查看次数

MDNS 从 kubernetes 内部广播?

我正在使用 jmdns 通过 mdns 广播服务,然后该服务在 kubernetes pod 内作为 docker 映像运行。pod yaml 看起来像这样:

apiVersion: v1
kind: Pod
metadata:
  name: mdns-broadcaster
spec:
  hostNetwork: true
  containers:
    - name: mdns-broadcasting-pod
      image: ...
Run Code Online (Sandbox Code Playgroud)

该应用程序将启动并广播某些服务类型_example._tcp。但是,从托管此 Pod 的单个节点运行 avahi-browse,我看不到正在广播的此类服务。

任何帮助将不胜感激,谢谢

mdns jmdns docker kubernetes

2
推荐指数
1
解决办法
2745
查看次数

NsdManager发现在Android 9上不起作用

我已经尝试了很长时间,让NsdManager发现功能在Android 9上运行。它可以在此之前的任何Android版本上正常运行。

为了进行测试,我使用了这个简单的代码段,清单中有“ INTERNET”的权限。

var nsdManager = context.getSystemService(Context.NSD_SERVICE) as NsdManager

nsdManager.discoverServices("_https._tcp", NsdManager.PROTOCOL_DNS_SD, object: NsdManager.DiscoveryListener {
    override fun onDiscoveryStarted(serviceType: String?) {
        println("DEBUG: onDiscoveryStarted $serviceType") 
    }
    override fun onDiscoveryStopped(serviceType: String?) {
        println("DEBUG: onDiscoveryStopped $serviceType") 
    }
    override fun onServiceFound(serviceInfo: NsdServiceInfo?) {
        println("DEBUG: onServiceFound $serviceInfo") 
    }
    override fun onServiceLost(serviceInfo: NsdServiceInfo?) {
        println("DEBUG: onServiceLost $serviceInfo") 
    }
    override fun onStartDiscoveryFailed(serviceType: String?, errorCode: Int) {
        println("DEBUG: onStartDiscoveryFailed $serviceType $errorCode") 
    }
    override fun onStopDiscoveryFailed(serviceType: String?, errorCode: Int) {
        println("DEBUG: onStopDiscoveryFailed $serviceType $errorCode") 
    }
})
Run Code Online (Sandbox Code Playgroud)

当执行此代码时,我在日志中看不到任何调试或错误消息。

使用Wireshark,我可以看到广播的mDNS Standard查询“ _https._tcp.local”以及来自所有预期设备的所有相应响应。由于从未调用过函数“ …

android mdns bonjour nsdmanager android-9.0-pie

1
推荐指数
1
解决办法
586
查看次数