Prosody 0.11.0サーバーのXMPP(Jabber)リリース

2000以上のエラーが修正されたProsodyサーバーの0.11番目の安定したXMPPブランチの最初のリリースが導入されました。







大きな変更







最も重要な改善点は、MUCおよびpubsubモジュールです。







これらのコンポーネントを組み合わせて、プロトコルが現在提供しているXMPP標準に対する最も広範なXEP拡張機能の2つを実装します。 以前のバージョンはかなり長い間MUCとpubsubをサポートしていましたが、どちらもかなり複雑であり、最初の実装の後、必要なXEP機能のカバレッジを増やし、コード構造とソリューションのスケーラビリティを改善するためにコードを更新およびリファクタリングする必要があることが明らかになりました。







他の多くの変更、改善、バグ修正も行われ、このリリースに含まれていたパフォーマンス作業が実行されました。







チャットの機能強化



このリリースでの変更のほとんどは、MUC(マルチユーザー会議)のコードのほぼすべてを書き換えることに関するものでした。 この野心的なプロジェクトは、数年前にユーザーdaurnimatorによって開始されました。ユーザーdaurnimatorは新しいコードのほとんどを開発しました。







最も重要な変更は内部的なものですが、これによりプロジェクトはより簡単に新しい機能を追加し、MUCサービスのスケーラビリティを向上させることができました(このバージョンのMUCモジュールにより、多くのサービスがJitsi Meetなどの数十万の一般的な会話と連携できます )。







強化された構成



サーバー構成フォームが更新され、より整理されたレイアウトとより便利なパラメーター名が提供されます。

会話会話ダイアログボックス。







メッセージのアーカイブ



XEP-0313プロトコル(MAM)を使用して、以前に書き込まれたメッセージをMUC(マルチユーザーチャット)でアーカイブおよびロードするためのサポートが追加されました。 これにより、クライアントは、たとえば、ユーザーがオンラインにいないときに一般的な会話で作成されたメッセージを表示できます。







ユーザー名の予約



混乱を防ぐため、Prosodyはユーザー名の予約を適用できるようになりました。 これにより、実際の所有者が共通の会話に参加していないときに、他人の名前を使用することを防ぎます。 デフォルトでは、共有チャットの所有者/管理者のみが名前の変更/名前の割り当てを行うことができます(ユーザーを共有会話に追加する場合)が、ユーザーが自分のエイリアスを登録して参加者になるようにモジュールを構成することもできます。







Pubsubプロトコル



このリリースでは、pubsubの実装が大幅に改善されています。 Link Mauveは、ノードと要素の安全性を担当するコードを追加しました。データはRAMではなくディスクに保存でき、サーバーの再起動時に失われることはありません。







高度なアクセス制御に必要な構成、ノード、所有権管理のサポートも導入され、最終的には、悪意のある公開オプションがサポートされます。これにより、適切なアクセス制御でアイテムを安全に公開できます。







ペップ



古いPEPコードは、2009年にユーザーが必要とするすべてを実装した個別の限定されたpubsub実装です。 ただし、長年にわたって、関連性が高いため、PEPでますます多くのpubsub機能が要求されてきました。 したがって、PEPはすべてのpubsub関数を追加し、既存のコードを使用する必要があることが明らかになりました。







Florian Zeitzは、新しいモジュール「mod_pep_plus」を作成することからこの作業を開始しました。 このモジュールは元の「mod_pep」に置き換わっており、すでにデフォルトのPEP実装です。







これにより、アドレス帳、会話、および他のクライアントにいないユーザーと通信するときにOMEMOサポートが提供されます。 また、ユーザーがPEPを使用してブックマークやその他のデータを保存することもできます。







新しいvCard形式



このリリースは、XEP-0292で説明されているvCard仕様の新しいバージョンのサポートを提供します。これには、さまざまな新機能のサポートが含まれます。







新しい形式もPEPに保存され、完全なアクセス制御アクセスが提供されます(たとえば、vCardが開いているか、連絡先のみが利用できるかを選択できます)。







vCard4を現在サポートしているクライアントはほとんどありませんが、古いvcard-tempプロトコルはmod_vcard_legacyを使用して引き続きサポートされます。mod_vcard_legacyは、クライアントが更新されるまで新しい形式に透過的に変換します。







モバイルバッテリーの最適化



このリリースでは、モバイルメッセンジャークライアントのバッテリー寿命を延ばすために設計されたいくつかのコミュニティモジュールが導入されています。 連絡先ステータスやチャットメッセージの変更など、ネットワークを介して絶えず送信されるトラフィックは、電話が低電力モードに切り替わるのを妨げる可能性があります。 ただし、特に電話画面がオフの場合やアプリケーションがバックグラウンドにある場合は、このデータは通常重要ではありません。







会話などのXEP-0352をサポートするクライアントは、アプリケーションがバックグラウンドにあるときにサーバーに通知でき、Prosodyはそれに応じて接続トラフィックを最適化します。







この関数はmod_csi_simpleモジュールに実装されています。







内部変更



非同期API



内部非同期APIで多くの作業が行われ、追加されたテストのおかげで信頼性が向上しています。 最終的に、このAPIは、大規模なパブリックチャットサーバーのパフォーマンスを改善するために使用されます。







これらの変更により、現在のリリースでは、非同期認証およびデータストレージモジュールの実験的なサポートが提供されています。 ただし、このリリースでは、将来のバージョンで大きな変更が予定されているため、新しいAPIは公式にはサポートされていません。







自動テスト



最近のプロジェクトの最大の改善点の1つは、自動テストの数の増加です。 以前のリリースはほとんど完全に手動でテストされていましたが、使用できる自動テストはほとんどありませんでした。 現在、各変更後に実行されるテストの大規模なセットがあります。







ネイティブepollのサポート



この新しい実験的なネットワークサーバーは、libeventに代わるものを提供します。 主な利点は小さな実装サイズと使いやすさであり、機能はLinuxシステムでの例外的なサポートです。







出所








All Articles