11

私は自分のプロジェクトのテクノロジースタックについて考え、ejabberdの使用について考えています。このプロジェクトは、プレイヤーがある場所から別の場所に世界中を移動する古典的なマルチユーザーダンジョンRPGのように見えます(場所はチャットルームとまったく同じように見えます)。また、ターン制モードでAIを使用して、お互いや生き物を理解します。 。

私はejabberdを使用したことはありませんが、erlangを使用してサーバーアプリケーションを作成した経験があります。

ejabberdはこの種のゲームにとってやり過ぎですか?それは私が今まで必要としない多くの機能を持っています。ただし、erlang開発者にはよく知られており、非常に安定していて成熟しています。ejabberdは、オンラインゲームの一種のトランスポート層として使用する価値がありますか、それとも、小さくてシンプルな独自のホイールを発明する必要がありますか?

4

1 に答える 1

12

私はこのようなことにejabberdを使用して、数年の商業経験があります。だから、私の見解:

長所:

  1. それは確かに技術的に可能です。
  2. 簡単に理解できます。
  3. 拡張と変更は非常に簡単です。
  4. 定期的に更新すると、2つの非常に重要な側面が解決されます。A.ネットワークセキュリティ(これは私にとって非常に重要なことです)。およびB.適切に行われた認証。これら2つだけでそれを使用する十分な理由があります。
  5. 驚くほど速いです。
  6. それはあなたに無料でチャット、プレゼンス、友達リストを提供します。
  7. それはあなたに無料でMUC(部屋)を与えます。パーミッションのようなすべてのもので非常にうまく解決しました。

短所:

  1. 使用可能なドキュメントを見つけることを本当に期待しないでください。ソースはほとんどあなたの唯一の友達です。
  2. コミュニティを見つけることを本当に期待しないでください。それは孤独な道です。部屋があります-ejabberd@conference.jabber.ruですが、とても静かです(そしてほとんど空です)。そこにいる人々のほとんどは開発者ではなく、ejabberdユーザーだけです。メーリングリストの方が少し優れていますが、通常、探している答えを見つけるには十分ではありません。
  3. ソースコード自体は、erlangプロジェクトの最良の例ではありません。大きくてモジュール式の分散型erlangソフトウェアの書き方を学びたい場合は、Riakのようなものを見てください。
  4. 内部APIはあまり安定していません(リリースによって大きく変化します)。このため、ソフトウェアを別のerlangアプリケーションとして作成し、外部XMPPコンポーネントとしてejabberdに接続することをお勧めします。したがって、安定したプロトコル(XMPP)を介して通信することが保証されます。もちろん、内部的なものも書く必要があることから逃れることはできません。認証と名簿(友達リスト)モジュールが最初に思い浮かびます。この組み合わせは、特にホットコードの読み込みが必要な場合は、維持と更新が非常に困難ですが、それでも私にとっては最善の解決策です。「ejabberd内」のコードを実行可能な最小限に抑えるようにしてください。
  5. そうは言っても、(私の知る限り)使用可能なXMPPerlangライブラリは1つだけです。これはexmppと呼ばれ、ejabberd(ProcessOne)と同じ会社によって開発されています。まだ安定しているとは考えられていません。私はかなり長い間それを使用していて、今のところ問題はありませんが、あなたは決して知りません。また、ほとんど文書化されていません(または、私がそれを学んでいたときはそうでした)。
于 2012-06-14T19:00:25.553 に答える