通常、低レベルでのプロトコルの実装は、ライブラリを引き受けます。 すべてをファイルの形で提示する場合、Inferno OSでそのような「ライブラリ」をどのように機能させるべきかを考える(想像する)ことにしました。
XMPPを実装するユーティリティ(以下、単にXMPP)は、JABBERサーバーとの接続を確立します。その結果、サーバーの運用と管理のために、ファイルがマウントポイント/ mnt / xmppに作成されます。
プレゼンス -ステータスとコマンドを書き込むファイル(使用不可など)、パラメーターの表示-表示方法(離れている-一時的に残っている、チャット-チャット、dnd-リソースがビジーか邪魔しないように...)、ステータス-宛先のステータス(オンライン、準備完了チャットする...メッセージを書き込む)、優先度-リソースの優先度、-サーバーに表示方法を「伝えた」。
サーバーからメッセージを読み取るメッセージファイル。
名簿を使用します。 ファイルには、対応するJabberIDに関するすべての情報を表示して操作する必要があります。
サーバーから情報を受信する例:
<item jid='romeo@example.net '
name = 'Romeo'
サブスクリプション= 'both'>
<group>友達</ group>
<group>本文</ group>
</ item>
名簿の各アイテムに対して、次のパラメーターが使用されます: jid、subscription、name、<group> 。
おそらく、マウントフォルダーには、受信者JIDを持つフォルダーが1つ、フォルダーが1つ-宛先が1つ、たとえばフォルダーがあるはずです。
iuser@jabber.org
secondusr@xmpp.ru 、
これらの各ファイル:
item-パラメータの読み取り/書き込み元のテキストファイル:name-この連絡先の名前の表示方法、subscription-subscription、group-連絡先が含まれるグループ。
受信者のサブスクリプションの存在と管理は<presence>タグによって決定されます。つまり、同じファイルが必要です。
Presence-コマンド(サブスクライブ、サブスクライブ解除、プローブ、または空の行)を記述し、ユーザー情報とそのステータスを表示するファイル:show、status、priorityパラメーター。
message-タイプ、件名、および本文パラメーターを使用してメッセージを読み取り/書き込みする場所(テキストを書き込む-受信者に送信され、ここから受信メッセージを読み取ります)。 例:
echo hello> /mnt/xmpp/iuser@jabber.org/messageは、テキスト「hello」をiuser@jabber.orgに送信します。
フォルダーの作成-連絡先が自動的に作成されます。
残念ながら、InfernoもXMPPのすべての機能も完全には知りません。これはすべて処理中です。
他の人の意見は非常に興味深いです: それはどうあるべきですか? :-)