= WeeChat リレープロトコル :author: Sébastien Helleu :email: flashcode@flashtux.org :lang: ja :toc: left :toclevels: 3 :toc-title: 目次 :sectnums: :docinfo1: 翻訳者: * Ryuunosuke Ayanokouzi , 2014-2016 この文書は WeeChat リレープロトコルについて述べたものです: リレープロトコルとは、WeeChat データをクライアントに中継するためのもので、多くの場合クライアントはリモートインターフェイスを指します。 [[introduction]] == はじめに [[terminology]] === 用語 この文書では以下の用語を利用します: * _リレー_: これは relay プラグインを備えた WeeChat を指し、"サーバ" のように振る舞い、_クライアント_からの接続を受け付けます * _クライアント_: これは他のソフトウェアのことを指し、ネットワークを介して _リレー_に接続します; 多くの場合、_クライアント_はリモートインターフェイスのことを指します。 [[network_diagram]] === ネットワーク図 以下の図に示すように _クライアント_は _リレー_に接続しています: .... ┌────────────────┐ ワークステーション ┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、 │ irc │◄──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、Mac OS X ...) └────────┘ └──╢ │ ║◄───┘ ┌────────────────┐ ...... ║ 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 [