問題タブ [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.
wcf - 名前付きパイプ バインディングを介して WCF サービスを公開する
はじめに:
数日前、Windows サービスでホストされている WCF サービスの実装に成功しました。StackOverflow のコミュニティは、ここでWSDL を公開するのに役立ちました。あらためて感謝いたします。しかし最近、このサービスの別の潜在的なクライアントがサービスと同じマシン上にあることがわかりました。これにより、namedPipesBinding で別のエンドポイントを追加する必要があると思いました。
名前付きパイプは、私に関する限り、マシン内通信に最適なソリューションのようです。これが間違っている場合は修正してください。
問題:
同じサービス/コントラクトの別のエンドポイントを公開する必要がありますが、今回は netNamedPipeBinding を使用します。ただし、クライアントからサービス参照を追加する方法が本当にわかりません。愚かにも追加した後
net.pipe://.... url を入力して、同じマシンにある Windows フォーム アプリケーションにサービス参照を追加しようとしました。うまくいきませんでした。mex (MetaData Exchange) エンドポイントは必要ないと考えたため、以前に削除したことに言及する必要があります。
- この mex エンドポイントは、名前付きパイプ エンドポイント バインディングの検出に必要ですか?
- クライアント アプリのサービス参照を名前付きパイプ エンドポイントに追加するにはどうすればよいですか?
c# - クライアントアプリがC#でローカルネットワーク上のサーバーを見つけるための最良の方法は何ですか?
クライアントは、GenuineChannels を使用してサーバーに接続します (DotNetRemoting への切り替えを検討しています)。find とは、接続するサーバーの IP とポート番号を取得することです。
ネットワーク上のすべての IP を試してアクティブなポートを試すという総当りのアプローチのように思えますが (それが可能かどうかもわかりません)、もっと良い方法があるはずです。
python - 柔軟で堅固でポータブルなサービス ディスカバリ
LAN 内のクライアントが構成なしでサーバー アプリケーションのすべてのインスタンスを検索する方法を探しています。自分で何かをハッキングする代わりに、既存のソリューションを使用したいと考えています。個人的には、Python で行う必要がありますが、他の言語での解決策について聞いてうれしいです。
では、なぜavahiやOpenSLPなどのZeroconf / SLPソリューションを使用しないのでしょうか? 追加の基準がいくつかありますが、前述のシステムのいずれもそれらに一致しないという印象を受けました。
私は次のような解決策を探しています:
- フレキシブル。スーパーユーザー権限を必要としないでください。つまり、1024 を超えるポートのみを使用してください。
- 固体。1 台のマシンで同じサービス タイプと異なるサービス タイプの複数のサービスを許可し、アドバタイズ サーバーを開始したインスタンスが停止またはクラッシュした場合でも、サービスのアドバタイジングを継続する必要があります。
- ポータブル。ほぼどこでも、または少なくとも *BSD、Debian/gentoo/RedHat/SuSe Linux、Mac OS X、Solaris、および Windows NT で実行する必要があります。
- 光。理想的には、1 つの Python スクリプトがソリューション全体になります。アドレスの自動構成などにはまったく興味がありませんが、必要のない機能がたくさんあるソリューションをしぶしぶ受け入れます。さらに、1 回限りのセットアップは厳禁です。
私は次のようなものを期待しています:
networking - ネットワーク上のデバイスを見つける最良の方法は何ですか?
ハードウェア デバイスを販売する会社のソフトウェアを構築しています。彼らは、どちらの IP も制限せずに、ソフトウェアがネットワーク上のすべてのデバイスを見つけられるようにしたいと考えています。
これを行う最善の方法は何ですか?ハードウェアが「既知の」マルチキャストアドレスにサブスクライブし、ソフトウェアにブロードキャストを送信すると、ハードウェアが応答する可能性があると思います。デバイスとソフトウェアは同じ LAN 上にあるため、マルチキャストがブロックされる心配はありません。「既知の」アドレスが将来すでに使用されていることが判明するのではないかと心配しています。いったんデバイスを公開すると、このプロトコルを変更することはできません。お知らせ下さい。
networking - ネットワーク全体で検出可能なWindows(win32)サービスを作成します
つまり、クライアント構成がゼロの(おそらくマルチセグメント化された)ローカルエリアネットワーク上のどこかで実行されているサーバーを確実に検出する方法
クライアントアプリケーションは、サーバーのIPアドレスを知らなくてもサーバーアプリケーションを見つける必要があります。ハブまたは他のスイッチングデバイスでセグメントに分割される可能性のあるローカルLANで動作する必要があります。
私はすでに実用的なソリューションを持っていますが、マルチセグメントネットワークでそれを機能させるのは少し面倒です。次のように機能します。
クライアントが起動すると、クライアントは独自のネットワークセグメントでUDPブロードキャストを送信します。サーバーが同じセグメントで実行されている場合、サーバーは問題なく動作します。サーバーは適切なメッセージで応答します。
サーバーとクライアントがUDPを転送しないハブ/スイッチで区切られたネットワークで実行されている場合(最も可能性の高いケース)、各セグメントでサーバーインスタンスを実行しており、TCPを介してクライアント要求を相互に転送します-ただし、これをサーバーインスタンス用に構成する必要があります(単純ですが、それでも技術サポートには苦労します)。これは、対処する必要のある主な問題です。5つまたは6つの別々のセグメントで実行されている何百ものクライアントがあるサイトがあります。
私が直面している問題:1。アプリケーションインストーラーがファイアウォールの適切なポートを有効にしているのに、これが正しく行われていないように見える状況に遭遇することがあります。2. UDPを転送しないハブ/スイッチドネットワークで複数のサーバーインスタンスを実行する(したがって、それらを構成および維持する)必要がある
最後に、Active Directoryやその他のルックアップサービスが構成されていない可能性のある最小限のWindowsネットワーク(XP / 2000 / Vista)でメンテナンスなしで機能するソリューションが必要です。
このためにランタイムのものにタグを付けたくありません-プレーンVC++またはDelphiでそれを行うことができるはずです。
商用アプリは通常どのようなアプローチを取りますか?SQL Serverがブロードキャスト呼び出しとNetBEUI呼び出しの組み合わせを使用していることを知っています(これについては間違っている可能性があります)。
前もって感謝します。
bluetooth - Bluetooth UUID の検出
Bluetooth デバイスが範囲内の検出可能なデバイスのデバイス ID を取得する方法を知っている人はいますか?
私は理想的には、Bluetooth プロトコルの最小実装を含む最も単純なソリューションを探しています。
出発点としては良いでしょう。できればSDPなどではなく無線周波数を使用して、近くのBluetoothデバイスのすべてのデバイスIDを最小限の消費電力で保存できるデバイスを作成したいだけです。
これで私を助けることができない場合は、低レベルの bluetooth (ステップバイステップ) 通信の良い読み物を見つけるのを手伝ってくれませんか. オンラインでの読み取りは非常に高レベルであり、実際に何が送信されたのか、いつ送信されたのかわかりません。
php - IdP 発見ベースの OpenID の PHP 実装?
Google には、自動エンドポイント検出を備えた非常に優れたユーザー フレンドリーなフェデレーション OpenID ログインがあります。
これは Java サーブレットで実装されていますが、php-openid と組み合わせて使用できる PHP の同等物はありますか?
検出メカニズムである XRDS については、次のドキュメントで説明されています。
- groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains
「DiSo の XRDS-Simple」のようなものが動作するはずですが、基本的なテストでは有用な結果が得られません。
- code.google.com/p/diso/
ありがとう、
wsdl - contractRef および docRef の非標準 Web サーバーポートを修正
私の問題は、これと密接に関連しています:非標準ポートから .NET Web サービスを使用するにはどうすればよいですか? . 私の Web サービスはポート転送ファイアウォールの背後で実行されているため、WSDL ドキュメントで報告されたポート番号には、内部の大きな番号のポートが含まれています。WSDL ドキュメントを書き換えることができる SoapExtensionReflector クラスを作成しました。そのため、example.com/path/loginservice?wsdl のようなリクエストは正しく処理されます。
ただし、これは「disco」リクエストを処理しません: example.com/path/loginservice?disco. これは、次のような XML ドキュメントを返します。
SOAP バインディングは SoapExtensionReflector によって適切に書き直されていますが、contractRef および docRef URL には大きな番号のポートがあります。どうすればそれらも書き直すことができますか?
c# - WCFディスカバリーはエンドポイントを検出しますが、ホストは「localhost」です
http://msdn.microsoft.com/en-us/library/dd456783(v=VS.100).aspxを開始点として使用して、WCFの検出機能を使用しようとしています。私のマシンでは正常に動作しますが、別のマシンでサービスを実行したいと思いました。サービスは適切に検出されましたが、検出されたサービスのホスト名は常に「localhost」であり、もちろんあまり使用されません。
サービスエンドポイント:
クライアント:
HostをSystem.Environment.MachineNameに設定するだけでよいですか?