0

消費者向けハードウェア製品を開発しています。各デバイスは中央の Web サーバーに登録されており、所有者はデバイスがリンクされているユーザー アカウントも持っています。所有者は、デバイスを他のユーザーと共有することもできます。

現在、ファイアウォールなどを通過する問題を解決するために、XMPP を使用しています。ユーザーは、iOS/Android アプリを使用して自分のデバイスにアクセスします。アプリは XMPP サーバーに接続し、ハードウェア デバイスも接続します。そのため、アプリはカスタム XMPP スタンザを送信することでデバイスにアクセスできます。

現在、デバイスとモバイル アプリは同じ JID を使用しているため、デバイスはそれ自体が使用するのと同じ裸の JID からのメッセージのみを許可します。デバイスを共有できるようにするために、代わりに名簿を使用する予定です。デバイスは独自の JID ("hw381983829@thexmppserver.com") を取得し、名簿内のすべての JID からスタンザを受け入れます。

私が抱えている問題は、ユーザー、デバイス、およびデバイス共有データが Web サーバーに保存されていることです。これと同じ情報を XMPP サーバーで使用したいと思います。Web サーバー上のすべてのユーザーとデバイスは XMPP にログインでき、デバイスの名簿はそれにアクセスできるユーザーと同じです。この情報には、JSON API を介してアクセスできます。

1 つの方法は、変更が発生したときにそれをミラーリングすることですが、失敗する可能性のある手順が多すぎるため、この考えは好きではありません。

私が考えることができる最善の解決策は、XMPP サーバーが組み込みデータベースの代わりに JSON API を使用できるようにすることです。読み取り専用になりますが、すべての登録と共有は Web サーバー上で行う必要があるため、これは問題ではありません。

続行する方法についてのアイデアはありますか?S2S やオフライン メッセージなどは必要ありません。現在は Ejabberd を使用していますが、Prosody や Openfire の方が優れた代替手段でしょうか?

4

1 に答える 1