2009-04-26 19 views
1

私は現在、WebサイトとのインターフェイスをとるためのJavaベースのデスクトップアプリケーションを構築するプロジェクトに取り組んでいます。私たちはIM機能を組み込みたいので、XMPPを使うことに決めました。XMPPクライアントの非互換性

私たちのアプリケーションには他の機能があり、XMPPサーバーに接続するために別のクライアントを使用する人は、私たちのウェブサイトに問題を引き起こします(例えば、クライアントは、特定のメッセージタイプでメッセージを送信できます他のクライアントと一緒に、それらのメッセージタイプを送信することができます)。

クライアントだけがXMPPサーバーにアクセスできるようにするか、他のクライアントが特定の機能を使用できないようにする人がいますか?私はこれがオープンスタンダードの考え方に反していることを知っていますが、独自のIMソリューションを最初から構築することは望ましくありません。

+0

「われわれのクライアントは、ユーザーが使用できない特定のメッセージタイプでメッセージを送信できますが、別のクライアントはメッセージタイプを送信できます。サーバーが標準クライアントを処理できない、またはクライアントが標準サーバーで動作しないことを意味しますか?私は前者を推測していますが、その場合、なぜ*相互運用性が問題になるのかは明らかではありません。 –

+0

基本的には、XMPPを使用して、アプリケーションのさまざまな機能に由来する(通常のIM状態の変更とは異なる)何らかのステータスメッセージを送信できるようにしたいと考えています(たとえば、何かを監視してから、オフ)。私たちのクライアントは、標準のチャットメッセージとは異なるメッセージタイプを使用してこれらのメッセージを送受信できますが、別のクライアントはそうではありません。 これは独自の問題ではありませんが、XMPPの機能は本当に素晴らしく、Smack APIのようなものを使用し、XMPPサーバーを実行するのは自分で行うよりもむしろ便利です。 –

答えて

1

です。独自の解決法を構築するには、完全にゼロから始めるのではなく、必ずしも悪いことではありません。しかし、XMPPクライアントをサポートしない限り、XMPPサービスと呼ばないでください。独自のブラウザが必要な「Webサイト」を使用した場合と同じ反応が得られます。

ネゴシエーションできる機能については、Feature Negotiationを参照してください。サーバーには他のクライアントに特定の機能はありませんが、自分で秘密裏にサポートされているとは言えません。実際に何かが試行されるのを妨げることはないので、それはかなり悪い解決策です。

デスクトップアプリケーションを構築せずにインスタントメッセージ機能を利用できます(すべてのプラットフォームサポートの頭痛が伴う)。 Orbitedは、あなたの探しているインスタントメッセージングのインタラクティビティを提供し、サーバーに統合するのがはるかに簡単になると考えてください。

そして、ちょうどサイドポイントとして、それに問題が発生したURL、またはクエリの組み合わせがあるかもしれないよりも、これ以上、あなたのウェブサイトに問題が発生するすべてのメッセージがあってはならない、など

+0

他の機能のため、デスクトップアプリケーションが必要です。 XMPPはとても使いやすいので、XMPPサーバーを使い、Smack APIを使うだけです。問題は、XMPPサービスと呼ぶのではなく、他のXMPPクライアントを動作させたくないということですが、私たち以外のクライアントを無視する方法はありません。 私はSteamのようなもので、Steamが(ゲームやその店などを管理している)他のすべてのものの上にIMプログラムを持っていると思います。誰かが自分のIMクライアントを書くことができるようにすることは望ましくありません。 –

+0

ハム。接続認証をハイジャックするのはどうですか?接続APIに渡すことができるトークンを返す別の認証サービスを使用している可能性があります。同じダンスをすることができないため、他のクライアントの接続をブロックします。おそらく多分醜い。 – Joel

+0

@Joel - 私が言及したpubsubのものに興味があるかもしれません。特定のノードにアクセスできるユーザーのホワイトリストを作成して、探しているセキュリティを提供することができます。 – Robin

0

すべての要件は不明ですが、おそらくXMPPのpubsubまたはpep機能を使用できるように思えます。これらはXMPPの拡張機能で、ユーザーレベル(個人用イベントプロトコルXEP-0163)でアクセスできる特殊なペイロードを作成できます。関心のある人全員に通知するだけであれば、PubSub(XEP-0060)があなたの望むものである可能性があります。

これらのプロトコルは、異なるプロトコルであるため、pubsubノードへのアクセスを保護し、標準チャットメッセージの影響を受けません。

関連する問題