問題タブ [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 Simple Plugin Frameworkを使用 します。5分で動作します。XML はありません。-- これは非常に未熟に見えます。
これに対して広く使用されている他のソリューションはありますか?
更新:コードを分離する必要はありません。OSGi は、現在の私の単純なニーズに対して複雑すぎるようです。また、意図を明確にするために、この質問のタイトルに「シンプル」を追加しました。
wcf - WCF DiscoveryClient は、リモート マシンから localhost への参照を返します
自己ホスト型の WCF サービスを備えたアプリがあります。
私の WCF サービスは、URI "net.tcp://localhost:8004/DocumentService" で公開されます。リモート マシンでサービスを実行し、新しい .NET 4 クラス DiscoveryClient を使用してサービスを検出しようとすると、検出されたすべてのサービスに URI "net.tcp://localhost:8004/DocumentService" があり、サーバーに関する情報はありません。サービスがホストされている実際のマシン。
リモートマシンでサービスにアクセスしたい場合、これは明らかに役に立ちません。しかし、FindProgressChanged に渡された引数に、実際のリモート マシン (IP アドレスまたはサーバー名) への参照が見つかりません。
リモート マシンに関する情報を取得する方法はありますか? または、リモート マシンのマシン名でサービスを公開する必要がありますか? それとも、DiscoveryClient が壊れているだけですか?
これが理にかなっていることを願っています。
c# - WCFディスカバリーはエンドポイントを検出しますが、アドレスはローカルホストです
PC @10.0.0.5:8732でホストされている「GetNameService」と呼ばれるwcf検出可能サービスがあります。これはwsHttpBindingでホストされ、UdpEndpointを介して検出できます。同じネットワーク内でそのようなサービスを検出するクライアント@10.0.0.9もあります。クライアントを実行すると、サービスを検出できますが、検出されたサービスのエンドポイントにはローカルホストが含まれています。どうすればこれが起こるのでしょうか、これで私を助けてください。
いくつかの詳細情報、
使用されるApp.config
クライアントマシンでブラウザを開き、サービスアドレスを入力すると、サービスの詳細ページが表示されますが、wsdlリンクはローカルホストを指しています(以下を参照)。
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が利用可能で、システムがスイッチを介して接続されている私の職場では機能するようですが、PCがルーターを介して接続されている自宅では機能しません。これは何かに影響を与える可能性がありますか?!?
更新 IISで実行されておらず、通常のコンソールアプリケーションを介してホストされています
wcf - ファイルレス アクティベーションを使用するときに WCF サービス ディスカバリを有効にする方法は?
皆さん、こんにちは。
WCF のファイルレス サービス アクティベーションを使用する場合、サービス ディスカバリを有効にするにはどうすればよいですか? このアプローチでは、明示的なエンドポイント タイプまたは動作構成を指定することはできないようです。
私の現在の試みは次のとおりですが、サービス検出はまだ機能していません:
java - 自動サービス検出プロトコル
私は現在、Javaで利用可能なさまざまなサービス検出プロトコルを調べており、いくつかのリストを作成しました。
- DNS-SD [ 1 ]別名mDNS - jmDNSによって実装され、ECF(Eclipse Communication Framework)のZeroconf/Bonjourディスカバリープロバイダーのバックエンドとしても使用されます。
- UPnP [ 2 ] -Clingライブラリによって実装されます
- SLP - OpenSLPおよびjSLPプロジェクトによって実装されます(後でECFディスカバリープロバイダーとしても利用可能です)
おそらくもっと多くのオプションがあります。もしそうなら、私はあなたにタムをミックスに加えることを勧めます。
これらの1つまたは多くを使用したことのある人々から、各プロトコルの長所と短所の客観的なリストを入手したいと思います。サービスの公開と検出の実装はどのように見えますか、プロトコルの「おしゃべり」とは何か、それはどれほど信頼できるか(プロトコルと実装の両方)、集中型サービスディレクトリが必要ですか、それともp2p/分散型などです。
LAN上の複数のデバイス/サービスのシームレスな自動検出を提供するためにどちらを選択しますか?
ip-address - サーバーIPを必要とせずにクライアントが検出できるように、ネットワークを介してサービスをブロードキャスト/マルチキャストする方法
サーバーIPを必要とせずにクライアントが検出できるように、ネットワークを介してサービスをブロードキャスト/マルチキャストする方法は?
DHCP IPの取得と同様に、クライアントがサーバーのIPアドレスを必要とせずに、他のクライアントがサーバーからサービスを検出できるようにする方法。
ブロードキャスト?マルチキャスト?ルビーや他の言語で同じものを実装するにはどうすればよいですか?
windows-phone-7 - Windows Phone 7 でローカル ネットワーク リソースを検出する方法
デスクトップ/ラップトップで実行されているローカル ネットワーク サービスを自動的に検出して通信する方法を見つけようとしています。Zune の wifi 同期機能によく似ています。iPhone では、Bonjour サービスを使用してこれを行うことができます。WP7 プラットフォームにそのようなものはありますか? 他の提案はありますか?
c# - WCFディスカバリーはハードコードされたURLを返します
壮大なデザインは次のとおりです。
- Windowsサービスとしてインストールされる特定のアプリケーションがあります
- ネットワーク上にこれらのいくつかがあるかもしれません
- それらのそれぞれは、ネットワークへのいくつかのインターフェースを公開します(「リモート制御」または「構成」と考えてください-そのようなもの)
- 次に、そのインターフェイスのクライアントとして機能する別のアプリケーションがあります(同じアナロジーを使用-「リモートコントローラー」または「構成ツール」)
- 後者の目的は、ネットワーク上の前者のすべてのインスタンスをスニッフィングし、それらをリストとしてユーザーに表示し、ユーザーがその公開されたインターフェイス(つまり、「リモートコントロール」または「構成」)を使用してさまざまな場所でそれらを突くことができるようにすることです。彼ら)
- 簡単にするために、全員が同じネットワーク内にいると仮定します。つまり、全員が互いのUDPブロードキャストを聞くことができます。
かなり簡単ですよね?私は昔、ロールマイオウンのUDPブロードキャストベースの検出メカニズムを使用して、この種のものを数十個作成していました。
しかし今、私はクールでヒップになり、アドホックモードでグルーヴィーなWCFディスカバリーを使用すると思いました。そしてそれは動作します!誰が言うことができますか?:-)
しかし、完全ではありません。私の前であちこちで述べたように、ディスカバリーはサービスの構成からハードコードされたURLを返します。つまり、サービス<baseAddresses><add baseAddress="net.tcp://localhost:1234/My/Service" /></baseAddresses>
の構成ファイルにある場合、それはまさに私がディスカバリークライアントから取得しようとしているものです-「localhost」の部分を含みます。
言うまでもなく、そのURLを使用してサービスを呼び出そうとすると、スリル満点の結果にはなりません。
だから問題は、ディスカバリークライアントにローカルホストのようなゴミの代わりに使用可能なURLを与えるにはどうすればよいですか?
みんなの時間を節約するために、うまくいかないいくつかの考え:
- 展開時にサービスの構成ファイルを変更し、実際のIPアドレスまたはマシン名をエンコードします。
IPとマシン名の両方が変更される可能性があるため、機能しません。 - 現在のIPまたはマシン名を使用してURLを作成し、コードから(少なくとも部分的に)サービスを構成します。
動作しません。ネットワークにDNSがない可能性があるため、マシン名は役に立ちません。コンピュータが一度に複数のネットワーク上にあり、したがって複数のIPアドレスを持っている可能性があるため、IPは役に立ちません(これは架空のものではなく、実際にこの状況にあります)。どちらを使用しますか?
つまり、サービスを微調整する必要はなく、検出クライアントに検出応答の送信元のアドレスを提供させる必要があります。
python - SSDPまたはUPnPを使用したサービス検出用のPythonライブラリはありますか?
PythonでUPnPを介してSimpleServiceDiscovery Protocol(SSDP)を実装するためのライブラリはありますか?基本的には、Pythonを使用してSSDPのプロトコルを作成したいと思います。