= WeeChat リレープロトコル :author: Sébastien Helleu :email: flashcode@flashtux.org :lang: ja-jp :toc: left :toclevels: 3 :toc-title: 目次 :sectnums: :docinfo1: 翻訳者: * Ryuunosuke Ayanokouzi , 2014-2019 この文書は WeeChat リレープロトコルについて述べたものです: リレープロトコルとは、WeeChat データをクライアントに中継するためのもので、多くの場合クライアントはリモートインターフェースを指します。 [[introduction]] == はじめに [[terminology]] === 用語 この文書では以下の用語を利用します: * _リレー_: これは relay プラグインを備えた WeeChat を指し、"サーバ" のように振る舞い、_クライアント_ からの接続を受け付けます * _クライアント_: これは他のソフトウェアのことを指し、ネットワークを介して _リレー_ に接続します; 多くの場合、_クライアント_ はリモートインターフェースのことを指します。 [[network_diagram]] === ネットワーク図 以下の図に示すように _クライアント_ は _リレー_ に接続しています: .... ┌────────────────┐ ワークステーション ┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、 │ irc │◄──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...) └────────┘ └──╢ │ ║◄───┘ ┌────────────────┐ ...... ║ WeeChat │ リレー ║◄───────┤ クライアント 2 │ 携帯デバイス ┌────────┐ ┌──╢ │ ║◄───┐ └────────────────┘ (Android、iPhone ...) │ jabber │◄──┘ ╚═══════════╧════════╝ │ ...... └────────┘ │ ┌────────────────┐ ...... └───┤ クライアント N │ その他のデバイス └────────────────┘ └────────────┘ └────────────────────┘╘══════╛└──────────────────────────────────────┘ ネットワーク ncurses リレー リモートインターフェース サーバ インターフェース プロトコル .... [NOTE] この文書で述べる全てのクライアントは _リレー_ プラグインの _weechat_ プロトコルを使っています。また _リレー_ プラグインは IRC クライアントからの接続を受け入れることができます、この場合 _リレー_ プラグインは _IRC プロキシ_ のように振舞います (この文書では説明しません)。 [[protocol_generalities]] == プロトコルの一般的説明 * _リレー_ プラグインは新しい接続を受け入れるために IP/port をリッスンし、_クライアント_ は TCP ソケットを使って _リレー_ に接続します。 * _クライアント_ の数はオプション _relay.network.max_clients_ で制限されています。 * それぞれの _クライアント_ が自分以外のクライアントと協調して動くことはできません。 * _クライアント_ から _リレー_ へのメッセージを _コマンド_ と呼び、これはテキスト形式 (文字列) で送信されます。 * _リレー_ から _クライアント_ へのメッセージを _メッセージ_ と呼び、これはバイナリデータとして送信されます。 [[commands]] == コマンド (クライアント → リレー) コマンドの書式は以下です: ---- (id) command arguments\n ---- フィールドは: * _id_: _リレー_ からの応答に含まれる任意指定のメッセージ識別子; 識別子は必ず括弧で括り、アンダースコアを最初につけるのは禁止されています (アンダースコアが最初についている識別子は WeeChat _event_ メッセージ用に予約されています) * _command_: コマンド (以下のテーブルを参照) * _arguments_: コマンドに対する任意指定の引数 (複数の引数を渡す場合は空白で区切ってください)。 利用可能なコマンドのリスト (詳しくは次の章を参照): [width="80%",cols="^3m,14",options="header"] |=== | コマンド | 説明 | init | _リレー_ 接続を初期化 | hdata | _hdata_ を要求 | info | _インフォ_ を要求 | infolist | _インフォリスト_ を要求 | nicklist | _ニックネームリスト_ を要求 | input | バッファにデータを送信 (テキストまたはコマンド) | sync | バッファを同期: バッファの最新情報を取得 | desync | バッファを非同期: バッファの更新を止める | quit | _リレー_ から切断 |=== [[command_init]] === init _リレー_ 接続を初期化。_リレー_ に送るコマンドは必ずこのコマンドから始めてください。_リレー_ がこのコマンドを受信していない場合、_リレー_ は最初のコマンドを受け取った時点で警告無しに接続を閉じます。 構文: ---- init [