Skip to content

halitizgin/SocketChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Başlamadan Önce

Bu projeyi kullanabilmeniz için Clone yaptıktan sonra bazı işlemler yapmanız gerekmektedir. Bu projede hem server hem de client(mobile) bulunduğu için bu işlemler ikiye ayrılmış durumdadır.

Server İçin Yapılması Gerekenler

Komut satırını projenizin bulunduğu konumda açın. Daha sonra cd server komutu ile server klasörünün içine girin. npm install komutu ile projenin gerekli tüm bağımlılıklarını kurun. İşlem tamamlandıktan sonra client'a(mobile) geçmeden önce npm start yada npm run start:dev(Bu komutu kullanabilmek için nodemon paketini global olarak kurmanız gerekmektedir. Kurmak için npm install -g nodemon komutunu kullanabilirsiniz) komutlarından birini çalıştırın ve sunucuyu başlatın.

Client(Mobile) İçin Yapılması Gerekenler

Komut satırını projenizin bulunduğu konumda açın. Daha sonra cd mobile komutu ile mobile klasörünün içine girin. npm install komutunu çalıştırarak gerekli bağımlılıkları kurun. Projeyi react-native run-android ya da react-native run-ios komutlarından herhangi birisini kullanarak projenizi açık olan herhangi bir emülatörde ya da gerçek bir cihazda test edebilirsiniz.

Ancak burada dikkat edilmesi gerek bir kaç nokta mevcuttur. Projeniz çalışabilir ancak Socket.io server'a bağlanmaması muhtemel.(ios'ta çalışır. Ancak android'de çalışmaz) Bunun sebebi Android'in localhost'u kabul etmemesi ve bunun yerine ip yazılması gerekmesinden kaynaklı. Bu ip'de bilgisayardan bilgisayara değişiklik göstermektedir. Bunun çözümü de yine yönteme göre değişiklik göstermektedir. Bunlarda farklı başlıklar altında toplanmaktadır.

Emülatörde Test Etmek İçin

Emülatörde işiniz biraz daha kolay aslında. Windows için: komut satırını açın ve ipconfig yazın. Burada aşağıda resimlerde görünen kısımlarda yazan başlıklardan hangisi varsa onu bulun:

Emülatör ipconfig 1 ya da Emülatör ipconfig 2

Buradalarda kırmızı dikdörtgen arasındaki ip'yi kopyalıyoruz.

Projemizin mobile klasöründeki projenin içindeki src/store/IOStore.js dosyasını açıyoruz.

@observable ip = '192.168.x.x'; //Ip adresi yanlış olursa çalışmaz.

Not: IOS için localhost yazmanız yeterli olacaktır.

Bu satırın karşısındaki tek tırnak arasındaki değere kopyaladığınız ip adresini yapıştırın. Daha sonra kaydedin.

Hemen ardından da react-native run-android komutu ile projenizi açın. Yanlış ip adresini almadıysanız Socket.io server'a başarılı şekilde bağlantı sağlanacaktır.

İsminizi girdikten sonra 5 saniye sonunda bağlantı gerçekleşmezse , bağlantı başarısız demektir. Zaten bir alert pencersiyle uyarılacaksınız.

Gerçek Cihazda Uygulamayı Test Etmek

Uygulamayı gerçek cihazda test etmek emülatöre göre bir tık daha zahmetli olabilir.

Wifi destekleyen bilgisayar için;

Bu seçenek için yapmanız gereken test etmek istediğiniz cihaz ile bilgisayarın aynı ağda bağlı olması. Daha sonra bilgisayarınızın Wifi üzerinden local ip adresini bulmanız gerekmekte. Bunun için yine ipconfig komutunu komut satırında çalıştırırsanız yine üst başlıktaki işlemi yapmanız gerekir.

Gerçek Cihaz ipconfig 1

Dikdörtgen ile gösterilen kısımdaki ip'yi kopyalayın. Daha sonra yine yukarıdaki başlık gibi;

src/store/IOStore.js dosyasını açın ve şu satırı bulun;

@observable ip = '192.168.x.x'; //Ip adresi yanlış olursa çalışmaz.

Buraya ip adresini yapıştırın. Daha sonra kaydederek react-native run-android komutunu çalıştırabilirsiniz.

Wifi desteklemeyen bilgisayar için;

Bu seçenekte muhtemelen bilgisayarınıza internet kablo ile bağlıdır. Test etmek istediğiniz cihazı da kablosu bağlı olan modeme wifi ile bağlanmanız yeterli. Sonra ise ip adresini almanız gerekmektedir. Bunun için yine ipconfig komutunu komut satırında çalıştırırsanız yine üst başlıktaki işlemi yapmanız gerekir.

Gerçek Cihaz ipconfig 2

Yukarıdaki dikdörtgenle işaretli kısımdaki adresi kopyalayıp yine src/store/IOStore.js içerisindeki şu satırı bulun:

@observable ip = '192.168.x.x'; //Ip adresi yanlış olursa çalışmaz.

Daha sonra kopyaladığınız adresi buraya yapıştırın.

Buna rağmen yine de çalışmıyorsa muhtemelen doğru ip adresini kopyalayamamışsınızdır. Yaşadığınız sorunları bana bildirebilirsiniz.

Sorunları bildirmek için ise http://www.kodevreni.com adresinde konu açarak dile getirebilirsiniz.

Uygulamadan Resimler

Gerçek Cihaz Huawei P9 Lite 2017 1920 x 1080

Gerçek Cihaz Huawei P9 Lite 2017 1920 x 1080

Gerçek Cihaz Huawei P9 Lite 2017 1920 x 1080

Emülatör Google Nexus S 480x800

Emülatör Google Nexus S 480x800

Emülatör Google Nexus S 480x800

Emülatör Google Pixel 2 1920x1080

Emülatör Google Pixel 2 1920x1080

Emülatör Google Pixel 2 1920x1080

Bu şekilde 3 farklı cihazla local bir test gerçekleştirdim. Sonuç başarılıydı.

Not: Tabii bu server projesini bir server'a deploy edebilirsiniz. Bunun için internetten "Node.js deploy" yazarak istediğiniz sonuçları bulabilirsiniz.

Projeye Hazır Olarak Erişmek Ya da Soru Sormak İsteyenler

Bunun için https://www.kodevreni.com/4601-react-native-ve-socketio-ile-real-time-chat-uygulamas%C4%B1/ adresini ziyaret edebilirsiniz.

Proje Güncelleme Notları

Proje artık tek ekran içinde değil, 2 ekran içerisinde çalışmakta. Ayrıca Chat ekranında sağ menü yer almakta ve bu menü de aktif olan kullanıcı listesi yer almakta. Ayrıca kodlama düzeni açısından da bir kaç düzenleme getirildi. Projeye Mobx store eklendi. Proje Icon eklendi.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published