21 Nisan 2020 Salı

MongooseIM ile XMPP dünyasına giriş #1

  Ahmet Şimşek       21 Nisan 2020 Salı
MongooseIM nedir?

MongooseIM çok çok kısa bir özetle erlang üzerine geliştirilmiş mobil odaklı (web desteği var) bir XMPP server. XMPP nedir derseniz https://xmpp.org/ adresinden daha detaylı bilgiyi edinebilirsiniz. Siteyi açtığınızda sizi karşılayan The universal messaging standard yazısı ne olduğunu özetliyor aslında.

Kurulum

Kurulumu macOS bir bilgisayarda gerçekleştirdiğim için macOS bazında anlatacağım. Diğer platformlarda kurulum konusunda detaylı bilgi için https://mongooseim.readthedocs.io/en/latest/user-guide/How-to-build/.

İlk olarak bağımlılıkları yükleyebilmek için brew kullanacağız sisteminizde brew kurulu değilse https://brew.sh/ sitesinden indirebilirsiniz.

Sonrasında aşağıdaki komut ile xcode command line toollarını indirelim.

$ xcode-select --install

Ve sonrasında brew ile bağımlılıkları indirelim.

$ brew install erlang openssl unixodbc

Sonrasında aşağıdaki env variablelarını .bashrc dosyasına ekleyelim ki terminali her açtığımızda define halde kullanıma hazır olsun.

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CFLAGS="-I/usr/local/opt/openssl/include"

Ve sonrasında projenin kaynak kodlarını git üzerinden lokalimize çekelim.

git clone https://github.com/esl/MongooseIM.git

Kodları çektiğimiz dizine girerek projeyi make komutu ile derleyelim. Bu biraz uzun sürebilir. Komutu çalıştırıp bir kahve almak için gidiyorum.

$ make

Akşam akşam kahve içmeyeyim diyerek su ile geri döndüm ve build hala devam ediyor. Derken tamamlandı.


Derlenen kodlar _build/prod/rel/mongooseim içerisinde bulunuyor. Şimdi .bashrc (ya da .zshrc) dosyasına aşağıdaki export u ekleyelim ki mongooseim komutuna terminali her açtığımızda istediğimiz yerden erişebilelim. Projeyi nerede derlediyseniz o dizin yolunu verebilirsiniz.

$ export PATH=~/MongooseIM/_build/prod/rel/mongooseim/bin:$PATH

Ve source ~/.bashrc (ya da .zshrc) yaparak mongooseim komutunu çağıralım.

$ source .bashrc


Komutu çalıştırdığımızda yukarıdaki gibi bir sonuçla karşılaşıyorsak doğru yoldayız.

Aşağıdaki komut ile server ı ayağa kaldıralım.

$ mongooseim start

Sonrasında mongooseimctl ile server durumunu kontrol edelim.

$ mongooseimctl status

Aşağıdaki gibi log görüyorsak doğru yoldayız devam.

MongooseIM node mongooseim@localhost:
    operating system pid: 38241
    Erlang VM status: started (of: starting | started | stopping)
    boot script status: started
    version: 3.6.2-249-g2b6608a36 (as mongooseim)
    uptime: 0 days 00:00:34
    distribution protocol: inet_tcp
    logs:
        log/ejabberd.log

Buraya kadar nasıl derleneceğini anlattıktan sonra Erlang Solutions resmi sitesinde derlenmiş dosyaların indirilebileceği linklerin olduğunu farkettim. İsterseniz orandan da indirebilirsiniz. https://www.erlang-solutions.com/resources/download.html

Şimdi XMPP client olarak kullanabileceğimiz macOS aracı olan https://adium.im/ u indirelim.

Terminalden yeni bir kullanıcıyı aşağıdaki komutla oluşturabilirsiniz.

$ mongooseimctl register_identified test_user localhost password

Şimdi adium u açıp oluşturduğumuz kullanıcının kullanıcı adı ve şifresiyle bağlanalım.


Sonrasında yeni bir chat açalım.


Ve kendimize bağlanalım.


Ve kendimize mesaj atalım.


Server doğru şekilde çalışıyor gibi gözüküyor. Daha karmaşık bir kurulum süreci olacağını düşünüyordum ama oldukça sancısız bir süreç oldu. Sonraki yazıda neden bahsedeceğim hakkında bir fikrim yok ama terminal komutlarını ve MongooseIM ile XMPP in genel yapısı üzerine olabilir sanırım. 
logoblog

Thanks for reading MongooseIM ile XMPP dünyasına giriş #1

Previous
« Prev Post

Hiç yorum yok:

Yorum Gönder