问题标签 [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.
java - 用于 Java 的 UPnP 库
是否有通过 UPnP 实现服务发现和发布的库?
(我正在尝试寻找 JmDNS 的一些替代方案,虽然它们在协议方面可以很好地满足我们的目的,但作为一个库非常不稳定,并且本身具有不可接受的死锁倾向。)
java - 简单的 Java 服务发现框架
我想在 Java 应用程序运行时发现接口的所有实现,并从用户可以添加到文件夹的 JAR 文件中动态加载这些类。它基本上是一个插件系统。
我为此找到了一些解决方案:
- 使用 SPI——这不是很灵活:我想要一些可能与注释一起使用的东西,或者只是寻找一个扩展的接口,而不必添加外部文本文件。
- 使用Commons Discovery——看起来像死路一条,因为上一个版本是 2005 年的 0.4
- 使用 Java 简单插件框架。5分钟,它的工作原理。没有 XML。——这看起来很不成熟。
有没有其他广泛使用的解决方案?
更新:不需要代码分离,而且 OSGi 似乎对我现在的简单需求来说太复杂了。我还在这个问题的标题中添加了“简单”以澄清我的意图。
wcf - WCF DiscoveryClient 从远程机器返回对本地主机的引用
我有一个带有自托管 WCF 服务的应用程序。
我的 WCF 服务在 URI“net.tcp://localhost:8004/DocumentService”下发布。当我在远程计算机上运行该服务并尝试使用新的 .NET 4 类 DiscoveryClient 发现该服务时,发现的服务也都具有 URI“net.tcp://localhost:8004/DocumentService”,而没有任何关于托管服务的实际机器。
如果我想访问远程机器上的服务,显然这是没用的。但是我在传递给 FindProgressChanged 的参数中找不到对实际远程计算机(IP 地址或服务器名称)的任何引用。
有没有办法获取有关远程机器的信息,或者我必须使用远程机器的机器名称发布我的服务?还是 DiscoveryClient 刚刚坏了?
我希望这是有道理的。
c# - WCF 发现找到端点,但地址是 localhost
我有一个名为“GetNameService”的 wcf 可发现服务,它托管在 PC @ 10.0.0.5:8732 上。它由 wsHttpBinding 托管,可通过 UdpEndpoint 发现。我还有一个客户端 @ 10.0.0.9,它在同一网络中发现此类服务。当我运行客户端时,我能够发现该服务,但发现的服务的终点是其中包含 localhost。怎么会这样,请帮帮我。
更多信息,
使用的 App.config
我在客户端机器上打开浏览器并输入服务地址,我可以看到服务详细信息页面,但 wsdl 链接仍然指向 localhost(如下所示)
svcutil.exe http://localhost:8732/Design_Time_Addresses/NameService/GetNameService/?wsdl
代替
svcutil.exe http://10.0.0.5:8732/Design_Time_Addresses/NameService/GetNameService/?wsdl
此外,相同的应用程序似乎在我的工作场所工作,那里有可用的 dns,系统通过交换机连接,因为它在我家通过路由器连接个人电脑的地方不起作用。这会影响什么吗?!?
更新 它没有在 IIS 中运行,它是通过一个普通的控制台应用程序托管的
wcf - 使用无文件激活时如何启用 WCF 服务发现?
伙计们,
使用 WCF 的无文件服务激活时如何启用服务发现?使用这种方法,似乎无法指定显式端点类型或行为配置?
我目前的尝试如下,但服务发现仍然无法正常工作:
java - 自动服务发现协议
我目前正在研究 Java 可用的各种服务发现协议,并提出了一个小清单:
- DNS-SD [ 1 ] aka mDNS - 由jmDNS实现,也用作ECF(Eclipse 通信框架)的Zeroconf/Bonjour 发现提供程序的后端
- UPnP [ 2 ] - 由Cling库实现
- SLP - 由OpenSLP和jSLP项目实现(后来也可作为ECF Discovery 提供者使用)
可能还有更多选择,如果是这样,我邀请您将其添加到组合中。
我很想从使用过其中一种或多种协议的人那里获得一些关于每种协议优缺点的客观清单。发布和发现服务的实现是什么样子的,协议的“健谈性”是什么,它的可靠性如何(协议和实现),它是否需要集中式服务目录还是 p2p/分散式等。
您会选择哪一个来提供对 LAN 上多个设备/服务的无缝自动发现?
ip-address - 如何通过网络广播/多播服务以供客户端发现而无需服务器 IP
如何通过网络广播/多播服务以供客户端发现而无需服务器 IP?
如何让其他客户端从服务器发现服务,而不需要客户端要求服务器的 IP 地址,类似于 DHCP IP 获取。
播送?多播?我如何在 ruby 或任何其他语言中实现相同的功能?
windows-phone-7 - windows phone 7如何发现本地网络资源
我正在尝试找到一种自动发现并与在台式机/笔记本电脑上运行的本地网络服务进行通信的方法。很像 Zune 的 wifi 同步功能。iPhone 可以使用 Bonjour 服务做到这一点。WP7平台上有类似的东西吗?还有其他建议吗?
c# - WCF 发现返回硬编码的 URL
宏伟的设计如下:
- 某些应用程序作为 Windows 服务安装
- 网络上可能有几个
- 他们每个人都向网络公开了一些接口(将其视为“远程控制”或“配置” - 那种东西)
- 然后有另一个应用程序充当该接口的客户端(使用相同的类比 - “遥控器”或“配置工具”)
- 后者的目标是在网络上嗅出前者的所有实例,将它们作为列表显示给用户,并允许用户使用暴露的界面(即“远程控制”或“配置”)在不同的地方戳它们他们)
- 为简单起见,我们假设每个人都在同一个网络中——也就是说,每个人都可以听到彼此的 UDP 广播。
很简单,嗯?在过去,我曾经使用自己的基于 UDP 广播的发现机制来构建这种东西。
但现在我想我会很酷很时髦,并在 Ad Hoc 模式下使用 groovy WCF Discovery 。它有效!谁能告诉?:-)
但不完全是。正如我之前在这里和那里所指出的,发现从服务的配置中返回了硬编码的 URL。也就是说,如果服务<baseAddresses><add baseAddress="net.tcp://localhost:1234/My/Service" /></baseAddresses>
在它的配置文件中,那么这正是我将从发现客户端得到的——包括“localhost”部分。
不用说,如果我尝试使用该 URL 调用服务,结果并不令人兴奋。
所以问题是:我如何让发现客户端给我可用的 URL 而不是 localhost-ish 垃圾?
为了节省大家的时间,有几个想法是行不通的:
- 在部署时更改服务的配置文件,将其编码为真实 IP 地址或机器名称。
不起作用,因为 IP 和机器名称都可能更改。 - 从代码(至少部分)配置服务,使用当前 IP 或机器名称来构造 URL。
不工作。机器名无用,因为网络中可能没有 dns。IP 没用,因为计算机可能同时在多个网络上,因此有多个 IP 地址(这不是假设,我们确实有这种情况)。那该用哪一个呢?
换句话说,我不需要调整服务,而是让发现客户端给我发现响应来自的地址。
python - 是否有使用 SSDP 或 UPnP 进行服务发现的 Python 库?
是否有通过 Python 中的 UPnP 实现简单服务发现协议(SSDP)的库?基本上,我想使用 python 为 SSDP 制定协议。