问题标签 [service-discovery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7905 浏览

android - 在 Android 中使用网络服务发现的内部错误

在使用开发人员页面上的示例和教程首次实现 NSDManager 期间,应用程序成功启动了发现并找到了设备。

不过现在好像坏了...

程序启动时,经过一些初始化后,代码进入如下方法并成功运行:

收到日志消息。过了一会儿(比如大约 5 分钟),程序会输出:

同样来自服务:

NSDManager 类中将错误代码“0”描述为内部错误。我所做的主要更新是访问名为 NsdCamera 的帮助程序类中的上下文。这里有一些可能是邪恶的代码片段:

辅助类构造函数:

辅助类 NSD 初始化:

CameraChooseActivity -> onCreate正在调用辅助类

0 投票
2 回答
635 浏览

c# - 如何在 ASP.NET 中同步调用 DiscoveryClient.Find

我正在尝试从 ASP.NET 页面使用 DiscoveryClient 发现服务

调用失败并出现异常:

System.InvalidOperationException:此上下文中不允许异步操作

堆栈跟踪:

在 System.Web.AspNetSynchronizationContext.OperationStarted() 在 System.ServiceModel.Discovery.DiscoveryClient.InitializeAsyncOperation(AsyncOperationContext context) 在 System.ServiceModel.Discovery.DiscoveryClient.FindAsyncOperation(FindCriteria 标准,对象 userState) 在 System.ServiceModel.Discovery.DiscoveryClient。 System.ServiceModel.Discovery.DiscoveryClient.Find(FindCriteria 标准)处的 FindAsync(FindCriteria 标准,对象 userState)

我尝试使用<%Page ... Async="true" %>没有任何改变。

如何在 ASP.NET 页面中正确调用 DiscoveryClient.Find?

0 投票
0 回答
1553 浏览

android - Android 网络打印机发现:NullPointerException

这个问题听起来确实很奇怪,但我以前从未经历过。我正在开发网络打印机应用程序并使用 NsdManager 来发现 WiFi 网络中的打印机。过去两周它一直运行良好,在同一个 WiFi 网络中发现和解析打印机。但是突然之间,每次我开始发现时,我都会遇到以下异常:

我正在 Nexus S 上测试应用程序。我连接了三星 S3,但那里没有出现此错误。我已经搜索过这个问题,但找不到任何解决方法。我得到的最接近的是https://code.google.com/p/android/issues/detail?id=39583

有人可以为此提出解决方案吗?我试图将“_ipp._tcp”更改为“_ipp._udp”,但它无法让我在网络中找到任何打印机。

0 投票
1 回答
121 浏览

android - 如何使用 Android 发现正在运行的 WCF 数据服务?

我的 Android 应用程序使用odata4j连接到托管在 Windows 服务中的 WCF 数据服务。当提供可以找到服务的指定 URL 时,通信工作良好。
但是,我需要修改应用程序以发现服务地址(多台计算机可以在局域网中运行该服务)。
我怎样才能发现这些服务地址?显然,除了尝试使用带有 try catch 块的 for 循环连接到 LAN 上的每个地址。这有什么安卓功能吗?

0 投票
1 回答
305 浏览

apache-zookeeper - zookeeper 初始发现

我想使用Apache Zookeeper(或Curator)作为复制命名服务。假设我运行 3 个 Zookeeper 服务器,并且我有十几台具有不同应用程序的计算机可以连接到这些服务器。

我应该如何将 zookeeper IP 地址传达给客户端?应该手动分发到每台机器的配置文件?

Corba 命名服务有一个 UDP 广播发现选项,在这种情况下不需要配置文件。Zookeeper中是否有类似的可能性?

0 投票
1 回答
981 浏览

android - 使用 android 智能手机和其他设备进行服务发现

在我的环境中,我有一部 Android 智能手机和一些其他设备。其他设备正在运行linux。所有设备都通过 Wifi 连接到本地网络。现在我想让智能手机识别和发现网络中的其他设备,所以我需要实现某种服务发现。在其他设备上应该不需要用户交互。之后,两个设备应该能够相互配对。

我读过 Android 支持Network Service Discovery (NSD)。这是一件好事,但这似乎只适用于 Android 设备,对吧?就我而言,其他设备是运行嵌入式 linux 的自定义硬件。编程语言也不相同。其他设备上的应用程序是使用 C++ 实现的。

我还阅读了有关简单服务发现协议 (SSDP)的信息。我想这应该以独立于平台的方式工作,对吧?您能否简单解释一下如何使用 SSDP 实现这一点?
你会推荐 SSDP 来实现服务发现吗?有没有适用于 android 和 c++ 的有用库?

或者你能建议其他方法来实现我想要做的事情吗?

问候

0 投票
2 回答
2910 浏览

android - 网络服务发现 Android

我正在构建一个使用网络服务发现的应用程序。我已经跟进了这篇文章http://developer.android.com/training/connect-devices-wireless/nsd-wifi-direct.html并且该应用程序正在运行,但是根据下面显示的代码,我有几个问题。

WifiP2pDnsSdServiceInfo.newInstance("_test", "_presence._tcp", 记录);

似乎记录无法保存太多数据。例如,如果记录大小为 20,则不发送信息。你能告诉我尺寸限制吗?我可以发送多少数据?

我不清楚可用的服务类型,如 _ presence._tcp。它是特定于供应商的吗?很高兴知道支持的服务类型列表。服务类型是否规定了我可以发送的信息量?如果是这样,哪些服务类型更适合发送大小合适的地图。

更新:我在http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt检查了这个草稿,请参阅第6.2 节 DNS-SD TXT 记录大小。看起来大小限制很小,如所述“典型 DNS-SD TXT 记录的总大小旨在很小 - 200 字节或更少。如果有更多数据是合理的(例如 LPR 打印 [BJP]),将总大小保持在 400 字节以下应该允许它适合单个 512 字节的 DNS 消息“。有什么想法吗?

0 投票
2 回答
3278 浏览

architecture - 从容器 (docker) 中发布您的应用程序

周末我在docker 的 IRC上问了这个问题,但在我想通答案之前不得不离开:

如果我有许多在容器中运行的应用程序(让我们暂时假设它们都在相同的物理硬件上运行,但不一定是这种情况)并且我希望它们中的每一个都能够找到每个其他自动。

使用某种注册表(例如etcd或 DNS-SD/Bonjour),您可以宣布您的服务和任何相关细节,并让其他应用程序了解它们并相应地路由流量。

这里的问题是,虽然应用程序可以知道它容器中服务于哪个主机名/端口,但这不一定是它可以访问的端口或地址。有两个信息需要连接:

  • 可以访问服务的位置从容器外部访问
  • 服务做什么(版本号、服务类型);可从容器内部访问

您如何建议我通过容器屏障获取此信息?

  1. 我可以通过 TCP 向容器公开 docker,因此应用程序可以查询它的显示位置,但这似乎违反了关注点分离。
  2. 我可以在我的容器中打开一个文件/端口,在容器启动后主机系统会查询该文件/端口以准备发布,但这感觉有点像我要重新发明 WSDL。

关于我应该如何解决这个问题的任何想法或指导?

0 投票
1 回答
2365 浏览

java - 从非 Android 设备查找和 Android NSD-Service

由于 Android 4.1 网络服务发现 (NSD)可用。但是,如何找到一个从计算机或其他不运行 android 的设备公开 NSD 服务的 android 设备。如示例中所示构建一个 android 应用程序会发现另一台设备很好,但是,并不总是将 Android 作为平台。

我正在我的 PC 上运行 UPnP 发现,但手机没有出现。

你可以在 github 上找到我实现的 NSD-Service 。

Discovery 应用程序很简单,来自android 示例

UPnP 示例正在使用 Cling,并且来自他们的教程,它找到了我的路由器和 windows 媒体播放器,所以我认为它可以工作。

问题可能是基于服务发现协议的不匹配,我对 NSD、UPnP、Bonjour、Zeroconf 和所有其他可能性之间的区别感到困惑......

0 投票
1 回答
2577 浏览

android - 在android上使用wifi直接发现服务后该怎么办?

我通过 wifi-direct 实现了服务发现,并且能够使用http://developer.android.com/training/connect-devices-wireless/nsd-wifi-direct.html成功发现服务。但我不知道现在该怎么办?如何连接到服务?我连接到其他同行的方式?如何通过 wifi-direct 使用服务?谢谢。