= WeeChat リレープロトコル :author: Sébastien Helleu :email: flashcode@flashtux.org :lang: ja :toc: left :toclevels: 3 :toc-title: 目次 :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 [