Yazı kategorisi: Back-End Web Teknolojileri

Kendi Yazdığım PHP Chat API’si

Yine ben :). Bu yazıda daha önce kendim için yazmış olduğum sohbet api sistemini paylaşıyorum. Bu proje aslında web teknolojileri kullanılarak masaüstü bir sohbet yazılımı yapmaktı. Ama fark ettim ki bu projenin çok sağlam rakipleri var.Skype, Viber gibi ürünlerle karşılaştırılamaz ve onların yerini tutamayacak kadar zayıf olacağı için vazgeçtim. Ama sonra php sunucu bölümünün işe yarar olduğunu düşünüp paylaşmak istedim.

Altta paylaştığım github reposundan projeyi indirip kullanmaya başlayabilirsiniz. Php sınıfyapısında olup Index sayfasında sınıfın kullanımı mevcuttur. Bu projenin dokümantasyonunu henüz yazmadım. Yazar mıyım emin değilim. Ama yazacak olursam burada örnek kullanımı için bir video paylaşırım. Basit bir doküman olarak sınıf dosyasının içindeki açıklama bölümlerini kullanabilirsiniz.

Aşağıdaki bağlantıdan inceleyebilirsiniz.

https://github.com/AknOzgen/byte-chat-api

Neler içeriyor: 

  • Özel Değişkenler:
    • contentType: Tahmin edeceğiniz üzere dosya tipi
    • pageCharset: Çıktının karakter seti
    • dumpFolder: Sohbet dökümlerinin kayıt edileceği dizin
    • membersFile: Üye bilgilerinin tutulacağı dosya yolu
    • roomsFile: Oda bilgilerinin tutulacağı dosya yolu
    • errorCodes: Hata kodlarını içeren dizi değişkeni
    • errors: Hata çıkabilecek fonksiyonların isimlerini içeren dizi değişkeni
  • Ortak Değişkenler:
    • requested
    • members
    • rooms
    • currentRoom
  • Metotlar:
    • Yapıcı metot: Çıktı tipini belirler, üye ve oda dosyaları yok ise oluşturulur, GET isteği bulunuyor ise bunu requested değikenine aktarır, members ve rooms değikenlerine ilgili dosyaların içeriklerini dizi olarak atar.
  • Ortak Metotlar:
    • login: Verilen giriş bilgilerine göre giriş yapabilme durumunu döndürür.
    • register: Verilen kayıt bilgilerine göre bir sorun yok ise kayıt işlemi gerçekleştirir.
    • createRoom: Şartlar uygun ise bir oda açmaya yarar.
    • enterRoom: İstenen oda için uygun şifre verilmiş ise o odaya giriş izni verir
    • sendMessage: Şartlar uygun ise ilgili oda ile ilgili döküm dosyasına yeni mesaj eklenir.
    • getMessages: Talep edilen odanın sohbet döküm verisini verir.
    • getRooms: Sunucudaki tüm sohbet odalarını döndürür.
    • messagesCount: Belirtilen odadaki mesaj sayısını verir.
    • check: Verilen anahtar değerin session varlığı kontrol edilir.
    • getUser: Kimlik kodu ile talep edilen üyenin tüm bilgilerini döküm olarak verir.
    • formatTime: PHP time() metodundan dönen zamanı görsel formata dönüştürür (Tamamlanmadı !).
  • Özel Metotlar (Bu metotlar sadece sınıf içinde kullanılmak üzere eklenmiştir):
    • saveUsers: Kullanıcıları içeren dizi değişkenini üye bilgilerini içeren dosyaya kaydeder.
    • saveRooms: İşlevi saveUsers ile aynı olup odalar için aynı işlemi yapar.
    • userExists: Kimlik kodu verilen üyenin varlığını kontrol eder.
    • roomExists: userExists ile aynı olup aynı olup odalar için aynı işlemi yapar.
    • getUserId: E-posta bilgisi verilen kullanıcının kimlik kodunu verir.
    • saveCurrentRoom: Açılan odanın son durumunu döküm dosyasına kayıt eder.
    • get: $_GET evrensel değişkeninin kolay kullanımı için kullanılır. Özel karakterler için güvenlik önlemi içerir.
    • post: İşlevi get ile aynı olup $_POST evrenseli için kullanılır.
    • encrypt: Şifre ve oda isimlerini şifrelemek için güçlü bir şifreleme metodudur.
    • getErrors: Sistem içerisinde dönen hataları almak için kullanılır.

Bu yapıyı ister bir masaüstü uygulamasında ister bir mobil uygulamada isterseniz bir web uygulamasında kullanabilirsiniz.

Bu sistem veritabanı olarak json dosyalarından faydalanır. Json yapısı php ile karakter katarlarını dizi ve dizileri karakter katarı olarak çevirmemize olanak verir. Json ile sıradan veritabanı sistemlerinden daha hızlı ve kolay kullanılan bir veritabanı sistemi yazılabilir.

Aklınıza takılan bir şey olursa bana facebook‘tan ve akinozgen17@outlook.com e-posta adresimden sorabilirsiniz.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s