ejabberd のデータフローを理解しようとしていて、今まで苦労しています。
まず、これらは私が取り組んでいるモジュールです: ejabberd_c2s、ejabberd_auth、ejabberd_sm、ejabberd_sm_mnesia。
ejabberd_c2s は、他のクライアントと通信したいクライアントのエントリ ポイントである gen_fsm であることを理解しています。
データフロー: クライアントが ejabberd_c2s に接続すると、何のデータかは不明ですが、{JID} の行に沿ってデータが送信されます。しかし、ejabberd_c2s の認証方法がわかりませんか? 認証モジュールを実際に呼び出す場所と、認証が成功した場合、そのユーザーのセッションを作成するのは誰ですか? それは ejabberd_c2s または ejabberd_auth ですか?
ejabberd_sm[_mnesia] は、実際に誰でもセッションを作成する API 呼び出しであることを理解しています。
コード/サンプルへの参照は大歓迎です。
この全体がどのように正確に機能しますか?
どうもありがとう!