问题标签 [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 投票
1 回答
500 浏览

ios - 从 iOS5 发现 WCF Rest Service

我正在构建一个应该与 WCF 休息服务通信的 iOS 应用程序。他们都将在同一个本地网络上。虽然测试已经硬编码了服务的 IP,但是当它被部署时这将不起作用。

我怎样才能获得服务地址,或以任何方式连接到它?

我正在阅读有关 WCF 发现的信息,但我不知道如何在 iOS 中实现它。

如果有任何帮助,我正在使用 WCF REST 服务模板 40(CS)

任何帮助,将不胜感激。

编辑:使用 bonjour 怎么样?有什么想法吗?

0 投票
2 回答
2186 浏览

c# - WCF 服务发现问题,需要很长时间才能返回结果?

我有一个 WCF 服务器库和客户端 [Winform],我使用自托管 winform 启动服务器。

我想让客户端发现 LAN 上的活动服务器,以另一种方式获取列表中的在线服务器 IPAddresses。我试过了DiscoveryClientUdpDiscoveryEndpoint它起作用了,这是代码:

客户端[Winform]:

服务器[Winform]:

但它没有像我预期的那样工作!

  • 为什么我必须给 ClientDiscovery 一个特定的标准?我有很多接口,我只需要主机地址,而不是接口的地址!
  • 获取列表需要花费太多时间 [大约 15-20 秒],不是应该很快吗?

    更新:
    在我使用 WCF 之前,我已经在 TCP 套接字上开发了一个服务器发现,我使用了 try/catch 的并行线程来连接和循环 255 个 IP 地址,例如:(192.168.1.X),我在 LAN 5 服务器上尝试过[ PC],结果是如此完美和快速,我坐了一个超时(3 秒)
    ,但在 WCF 上我不知道我将如何完成这个!

    在此处输入图像描述

  • 0 投票
    1 回答
    2939 浏览

    java - 广播服务器发现

    我正在用 Java 创建一个游戏,模拟经典的 5 张牌扑克,有 2 到 4 名玩家。大多数数据将由服务器处理,但由于我不能使用在线服务器,我的想法是允许用户通过创建本地游戏来托管游戏。

    现在,我不想强​​制使用 IP 连接游戏,所以我在用户内创建了一个“发现”界面,可以看到所有可用的游戏。这是使用 UDP 协议和对一个公共组的广播研究来完成的:

    (代码被简化为仅显示已执行的操作,可能无法像此处显示的那样工作)

    客户

    服务器

    客户端在 6020 端口上发送一个 UDP 广播包。当服务器收到这个包,如果它是由一个字节 0xF0 组成的,他会向客户端发回一个字节 0x0F。每个客户端也在侦听端口 6020,当接收到由字节 0x0F 组成的数据包时,它会在端口 6020 上启动到服务器的新 TCP 连接。

    我的问题:有没有更好的方法来实现这个“发现”系统?我知道这仅适用于本地网络,是否可以使用本地服务器将发现“扩展”到“外部”?

    0 投票
    1 回答
    1229 浏览

    language-agnostic - 如何自动检测服务器?

    我们开发了一个客户端应用程序和一个服务器应用程序。客户端使用http协议与服务器通信,并发送一些数据供服务器处理。

    我们的结构允许我们将服务器安装在任何地方。我可以在同一个客户端网络上,甚至在云上。

    当服务器托管在云上时,向用户询问服务器地址是有意义的(因为如果用户愿意,它可以更改),但当服务器与客户端位于同一网络上时则没有意义。除此之外,我们目前要求用户配置服务器 ip/name 以连接到服务器。

    为了避免这种情况(向用户询问地址),我开发了一个基于 UDP 的发现服务。客户端广播一条消息,服务器用它的地址来回答。它在某些情况下确实有效,但当用户有某种防火墙、代理甚至防病毒时,它就不起作用了。

    我已经阅读了很多关于发现服务的内容,其中最喜欢的是Bonjour

    所以,问题是:当服务器与客户端位于同一网络上而不会被防火墙、代理等阻止时,发现服务器 IP 的最佳方法是什么?

    0 投票
    1 回答
    480 浏览

    android - 使用 NsdManager.DiscoveryListener 时的固定时间段的服务发现

    我正在尝试使用 Android 的 NsdManager API 实现一个服务发现类。我想知道如何从主要活动开始服务搜索一段固定的时间,然后停止它以使用搜索结果?

    NsdManager API 说调用应该是异步的

    API 是异步的,对来自应用程序的请求的响应在单独线程上的侦听器回调上。

    我已经成功地向该类发送了一个处理程序,该处理程序使用消息响应更新我的 UI 线程,但我不确定如何在不使用计时器阻塞主线程的情况下停止发现服务,例如 5 秒:S

    我希望这是一个相关的问题,并且我提供了足够的信息。

    0 投票
    0 回答
    130 浏览

    java - 向所有安装了 FOO 应用程序并连接到互联网的计算机广播“计算机信息”

    有什么方法可以广播我的计算机名称/位置/IP,并且还可以通过连接到互联网的程序接收他们的计算机名称,而无需中央服务器在工作?考虑一下这个例子。我可以在没有中央服务器的情况下使用吗?

    在此处输入图像描述

    可以有一个中央服务器来存储所有安装了应用程序并连接到互联网的计算机的名称,但是没有它我有什么办法吗?

    要连接到远程 PC,我之前使用过 RMI 并了解它的功能。

    0 投票
    1 回答
    1672 浏览

    java - mDNS 代码 bonjour

    我需要开发一些服务器发现协议,我试图获取 mDNS 文档,我可以在其中了解 mDNS 及其实现。但我无法得到..任何人都可以帮助我获得相同的基本代码会对我有很大帮助..

    我打算使用 JAVA 实现发现协议。

    0 投票
    1 回答
    643 浏览

    wcf - WCF 发现和数据服务 V3

    我想为我的 Data Services v3 公开发现端点(TCP 和 UDP),并使服务可以从客户端发现并在另一个应用程序中发现它们。发现的要点是在客户端获取服务端点地址。

    我试图调整 Microsoft 为WCF Discovery提供的示例,但到目前为止我未能实现我的目标。我在服务器端创建了一个自定义数据服务主机工厂

    客户端,我尝试了以下代码:

    不幸的是,这不起作用。我得到InvalidOperationException

    尝试获取 DataModel 的合同类型,但该类型不是 ServiceContract,也不继承 ServiceContract。

    如果我朝着正确的方向前进,我需要一种方法来表达发现的服务合同的类型。太糟糕了,我不确定它是否会像正常的 WCF 发现一样工作......

    请分享您的想法甚至更好的工作解决方案。

    0 投票
    6 回答
    8245 浏览

    android - Android NSD 未发现所有服务

    我正在尝试使用 Android Native Service Discovery 运行应用程序,但有时当我运行应用程序时,它不会从我的网络中发现所有服务。我正在使用四个星系联结从https://github.com/joeluchoa/nsd运行代码,并且大多数情况下,他们每个人都同时发现不同数量的服务。

    基本上我使用 ServerSocket 运行服务:

    然后我使用 NsdManager 中的 registerService 方法发布它:

    为了发现服务,我使用 NsdManager 中的 discoverServices 方法:

    使用 mDiscoveryListener 如下:

    难道我做错了什么?有人知道解决方案或解决方法吗?

    0 投票
    1 回答
    636 浏览

    web-services - OWL API - Web 服务发现上下文中的 OWL 类包含测试

    我有非常艰巨的任务摆在我面前,所以我欢迎任何帮助和建议。

    我必须实现 Java Web 服务,该服务将匹配另外两个给定的 Web 服务以实现语义相似性。这两个其他 Web 服务将使用 OWL-S 来描述,它使用来自 OWL 本体的概念。S1 将是我正在寻找的 Web 服务(我的查询),而 S2 将是存储库中的服务(广告)。所以我需要从我的 Java 代码中访问 OWL-S 描述和 OWL 本体。

    我正在使用 Eclipse、Tomcat、OWL API 和 HermiT 语义推理器。

    我有非常原始的匹配算法,主要目标是将服务 S1 输入和输出与 S2 输入和输出进行匹配。

    我是这个主题的初学者,我从未使用过 OWL API,也从未使用过本体。

    我目前的待办事项清单: 1. 从 OWL-S 加载一个过程参数类型(OWL 类)。假设 S1 输入是 C1 类型,S2 输入是 C2 类型。2. 查找类 C1 和 C2 是否在我的本体 O 中。 3. 检查类 C2 是否包含类 C1,或者它们在我的本体 O 中是否在语义上相同。

    对于这些任务,我将不胜感激任何我找不到的代码示例或片段。特别是检查 C2 类是否包含 C1 类。

    问候