古のチャットツールと技術「XMPP」を紹介します

解説記事
スポンサーリンク

こんにちは。草井真良です。
最近は忙しくて記事の更新が中々できない日々が続いています。
本題に入って、今回は古の通信規格「XMPP」を取り上げたいと思います。

スポンサーリンク

はじめにXMPPとは?

XMPPとは、2004年にIMPPのインターネットメッセージの標準案として制定されたもので、Jabber社が開発した「Jabber」の仕組みを改良したものです。
拡張性が高く、Google TalkやSlackなどとの通信が可能でした。過去形です。
というのもGoogle Talkはサービスを終了し、SlackはアップデートによりXMPPに非対応となりました。

このように20年前の規格で今では便利な各種チャットツールの場により、はっきり言って時代遅れのものですが、今回は面白そうなので取り上げる事にしました。
それでは良ければ解説を読んでいってください。

スポンサーリンク

XMPPの詳しい歴史と解説

XMPPの歴史はその前身たるJabberの開発された1998年まで遡ります。
ジェリミー・ミラーという人がソースコードを公開したオープンソースという形式で、2000年にjabberdというツールのバージョン1.0を発表しました。
それがXMPPの基礎となり、その系譜は今日まで続いております。

技術の解説をします。
XMPPはXML形式を基礎としており、主に5222番ポート(TCP)を用いて通信を行います。
ポートって何だ?と思われる人のために解説しますと、ポートは建物でいえば複数あるうちの出入り口のようなもので、インターネット上では分かりやすくするために番号が振られています。
例えばWebサイトで使うポートは80番と443番、サーバの管理に使うのは21番と22番という風に大まかに決められています。

メールのような方式を採用しており、現在の主なチャットサービスのようにどこか1つの企業や組織のサーバで管理されておらず、メールサーバのように自分のXMPPサーバを用意する必要があります。
XMPPのアカウントは「[email protected]」のように、「ユーザー名@ドメイン名」という形式になっています。
オープンソースのソフトウェアなので、マシンかサーバさえあれば、誰でもXMPPサーバを立てて運用する事ができます。

スポンサーリンク

XMPPサーバの立て方と現在続いているXMPPサーバの紹介

XMPPのサーバを立てるツールは主に2つあります。
Openfire」と「ejabberd」というツールで、これをVPSなどにインストールするとサーバを立てられます。

Ignite Realtime: A real time collaboration community site
ejabberd XMPP Server with MQTT Broker & SIP Service
ejabberd is an XMPP server (Jabber server), MQTT broker and SIP gateway built to create awesome realtime services like m...

インストール方法は以下のページでそれぞれあるので参照してください。

OpenfireとSparkで社内インスタントメッセージを導入してみました | 和歌山でマーケティングオートメーション・ITツール導入ならシステムキューブ
和歌山のシステム開発・ソフトウェア開発|株式会社システムキューブ
Attention Required! | Cloudflare

面倒くさいと思いますが、こういう手間をかけないと安全に安定した通信ができない時代があったみたいです。
という訳で既にあるXMPPサーバに登録して使った方が手間が省けるという事で、既存の安心できそうなXMPPサーバを見つけてきました。

XMPP.JP
Xmpp
Due to a ridiculous number of automated account registrations, I've rate-limited signups to 1 per hour. This will restri...
XMPP: @thesecure.biz

ここから好きなXMPPサーバを選んで登録してみてください。一番上のXMPP.JPが日本語で使いやすいかも。
これでアカウント登録は終わりです。

XMPPクライアントソフトの紹介

アカウントを登録して用意したら次はクライアントソフトを用意します。
情報は古いものの、下記のページが参考になるでしょう。

Jabber/XMPPクライアント不完全リスト
XMPP チャット Gajim

個人的に私が使っているのはGajimConversations(F-Droid版)を使っています。
GajimはWindows・Mac・Linux・BSDで動いて汎用性があり、ConversationsはF-Droid版ですと無料で使えて信頼性の高いAndroidのアプリとなります。
上記画像はGajimを利用した際の画像です。

Gajim
Gajim, a fully-featured XMPP chat client
Conversations | F-Droid - Free and Open Source Android App Repository
Encrypted, easy-to-use XMPP instant messenger for your mobile device

iOSでXMPPのおすすめクライアントアプリがあったら教えてください。
そこは今の私にはまだよく分かりません。

Converse
Converse XMPP/Jabber Chat
GitHub - conversejs/converse-desktop: Electron-based Desktop client for Converse.js
Electron-based Desktop client for Converse.js. Contribute to conversejs/converse-desktop development by creating an acco...

強いて言えば「converse.js」という、ブラウザ上のXMPPクライアントを使うくらいでしょうか。
ちなみにこれもオープンソースです

代表的なXMPPサーバの部屋

XMPPのサーバとクライアントを用意したら、最後はXMPPのチャットルームに入ってみましょう。
2つ見つけましたので興味がございましたらどちらか好きな方、もしくは両方に入ってみましょう。

談話室「XMPP users」

談話室「XMPP users」
[email protected] XMPP に関する情報は日本語では特に少なく、「ちょっと興味があ…

日本語でXMPPの話をしている数少ないチャットルームの1つです。
[email protected]」というリンクから入れます。
部屋の雰囲気はまったりしています。

076 XMPP

404 Not Found

テクニカル諏訪子さんが運営しているチャットルームです。複数あります。
ルール無用とはいえ常識を守って使う方が良いでしょう。

最後に

どうでしたでしょうか?
2010年のものですが書籍もあります。

今でもプログラムの更新と文化が続いており、TorやVPNからでもチャットの利用が可能なのですが、どうしても選択肢が多くて面倒くさい所はあります。

古い技術なので利便性でいえばSkypeやDiscord、匿名性でいえばSessionやSimpleXに劣る所はありますが、長い歴史があって反面信頼できる技術でもあります。
XMPP、試してみませんか?

コメント

タイトルとURLをコピーしました