Arama butonu
Bu konudaki kullanıcılar: 1 misafir
17
Cevap
2133
Tıklama
0
Öne Çıkarma
PHPciler gelsin - Asenkron / WebSoket / Ratchet / MongoDB / Mysql / Laravel
P
11 yıl
Binbaşı
Konu Sahibi

PHP de bir oyun geliştiyorum, gerçek zamanlılık gerekiyor. Ayrıca veri akışı senkronizasyonunda bozukluk olmasını istemiyorum. ve Performanında iyi olması gerekiyor.
Onun için yoğun birşekilde Javascript / Ajax / Websoket kullanıcam.
Laravel Frameworku üzerinde geliştiyorum. Verilerin değişiceği işlemleri, phpde sıralı şekilde yaptıracağım.
Fakat veri almaya dayalı işlemleri asenkron halde yaptırmak istiyorum. Bu konuda Rachtı buldum. Websoketleri üzerinde sayfa js ile arka planda veri alacak.
MySQL kesin kullanacağım fakat MongoDB bilgimide kullanarak daha yüksek performan istiyorum.
Cache/Redis gibi ramda çalışan sistemlerlede performsı arttırmak istiyorum.
Fakat nasıl bir kombinasyon yapmalıyım, neleri kullanmak gerek seçemedim.

Bir önceki php oyunumda asenkron(tek thread) olmasına rağmen, RAM ve MySQL performans için beraber kullandım , sonuç hüsran oldu. (Hiç beklemdiğim saçma buglar oluştu)


Edit : Phalcon(PHP FW) + Reacht/NodeJS + JavascriptWEBsocket + Redis/Memcache + MySQL kombinasyonuna karar verdim.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Perceptron -- 15 Ağustos 2014; 22:36:23 >

< Bu ileti m.bolumsonucanavari.com kullanılarak atıldı >

T
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: .fcan
Equloent desteği olan hangi frame worku onerirsiniz ?
back /front end kavramını anlamadim biraz acarmisiniz ?
2 veri tabanının senkronize çalışmamasindan dolayı sorun oluştu .

amacım : oyun hakkında vt den bilgi isteklerinin sıralı değil asenkron yapılması . Yani istekleri %90i veri alma olacak . Bunların çok hızlı yapılmasını istiyorum . Verileri oyuncu browseri javasc ile alacak


Eloquent standalone çalışabilen bir komponent. Şu makaleyi okuyabilirsinizhttp://www.edzynda.com/use-laravels-eloquent-orm-outside-of-laravel/

Backend arkayüz, Laravel ve React'ı çalıştırdığın yer. Frontend önyüz, Javascript/HTML5 kullandığın yer.

2 veritabanını niye kullanıyorsunuz?

Veritabanından çekeceğiniz bilgileri, Redis üzerinde tutun. (veya native olarak React'in hafızasında tutabilirsiniz) Reactte zaten blocking bir işlem olmamalı?

 
$http->on('request', function ($request, $response) {
$response->writeHead(200, array('Content-Type' => 'application/json'));
$response->end(json_encode('a' => 'b'));
});


Açıkcası sorununuzun ne olduğunu halen anlamış değilim. Javascriptin istediği verileri, React üzerinden (ki burada blocking bir işlem olmayacak) respond edeceksin.
Aslında, eğer yazmadıysanız pratik olması açısından React ile bir chat uygulaması yazın. O zaman kafanızda şekillenir ve Redis kullanımına girersiniz performans için.


Bu mesaja 1 cevap geldi.
P
11 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: TSF Aristona

quote:

Orijinalden alıntı: .fcan
Equloent desteği olan hangi frame worku onerirsiniz ?
back /front end kavramını anlamadim biraz acarmisiniz ?
2 veri tabanının senkronize çalışmamasindan dolayı sorun oluştu .

amacım : oyun hakkında vt den bilgi isteklerinin sıralı değil asenkron yapılması . Yani istekleri %90i veri alma olacak . Bunların çok hızlı yapılmasını istiyorum . Verileri oyuncu browseri javasc ile alacak


Eloquent standalone çalışabilen bir komponent. Şu makaleyi okuyabilirsinizhttp://www.edzynda.com/use-laravels-eloquent-orm-outside-of-laravel/

Backend arkayüz, Laravel ve React'ı çalıştırdığın yer. Frontend önyüz, Javascript/HTML5 kullandığın yer.

2 veritabanını niye kullanıyorsunuz?

Veritabanından çekeceğiniz bilgileri, Redis üzerinde tutun. (veya native olarak React'in hafızasında tutabilirsiniz) Reactte zaten blocking bir işlem olmamalı?

 
$http->on('request', function ($request, $response) {
$response->writeHead(200, array('Content-Type' => 'application/json'));
$response->end(json_encode('a' => 'b'));
});


Açıkcası sorununuzun ne olduğunu halen anlamış değilim. Javascriptin istediği verileri, React üzerinden (ki burada blocking bir işlem olmayacak) respond edeceksin.
Aslında, eğer yazmadıysanız pratik olması açısından React ile bir chat uygulaması yazın. O zaman kafanızda şekillenir ve Redis kullanımına girersiniz performans için.


Makale güzel miş, acaba diğer parçalarda (blade,route) bu şekilde kulllanılabilir mi?

Backend Frontend i anladım hocam. Bi nevi server tarafı, browser tarafı.

2 veritabanı kullanma sebebim; performanstı. Biri phpde oluşturduğum fc_ram (shmod kullanan) RAM tabanlı veritabanı (redis/memcache) ile aynı işi görmekte, diğeride MySQLdi. Veri okuma hızını arttırmaya çalıştım.

Reacht üzerinde baya araştırma yaptım mantıklı geliyor.

Sorunum; Max Performs (memcache sistemler, ve tıkanmalar olmaması), Tutarlılık, non/blocking veri döndürme(browsera) ve bunları devasa bir projede işler karışmadan yapmak.

Framework olarak ; Phalcon u buldum C ile yazılmış eklenti olarak. Yii filanda var
Yardımınız için çok teşekkürler.





< Bu mesaj bu kişi tarafından değiştirildi Perceptron -- 13 Ağustos 2014; 14:19:44 >

< Bu ileti m.bolumsonucanavari.com kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: .fcan

Makale güzel miş, acaba diğer parçalarda (blade,route) bu şekilde kulllanılabilir mi?

Backend Frontend i anladım hocam. Bi nevi server tarafı, browser tarafı.

2 veritabanı kullanma sebebim; performanstı. Biri phpde oluşturduğum fc_ram (shmod kullanan) RAM tabanlı veritabanı (redis/memcache) ile aynı işi görmekte, diğeride MySQLdi. Veri okuma hızını arttırmaya çalıştım.

Reacht üzerinde baya araştırma yaptım mantıklı geliyor.

Sorunum; Max Performs (memcache sistemler, ve tıkanmalar olmaması), Tutarlılık, non/blocking veri döndürme(browsera) ve bunları devasa bir projede işler karışmadan yapmak.

Yardımınız için çok teşekkürler.


Güzelmiş, bende PHP öğrenirken file tabanlı bir veritabanı yapmıştım, ancak Redis basit bir KV storage değil. İleride Redis'i de scale etmen gerekebilir. Senin geliştirdiğin sınıfta replication özelliği var mı? Yok. Partitioning var mı? Yok. Bunun gibi şeyler ileride çok önemli olabiliyor.

Illuminate komponentlerinin hepsi standalone çalışabiliyor diye biliyorum, ancak kendim denemedim bu yüzden yalan bilgi vermiş olmayayım.

Eğer ilk kez böyle bir oyun geliştirmeyi düşünüyorsan bırak karışsın. Geliştirirken bir taraftan öğreneceksin. Daha ortada fol yok yumurta yokken "devasa proje" yi düşünmene gerek yok. Başla geliştirmeye, takıldığın yerleri refactor edersin.





< Bu mesaj bu kişi tarafından değiştirildi TSF Aristona -- 13 Ağustos 2014; 14:24:18 >
Bu mesaja 2 cevap geldi.
P
11 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Video Tapes

quote:

Orijinalden alıntı: TSF Aristona

quote:

Orijinalden alıntı: .fcan

Makale güzel miş, acaba diğer parçalarda (blade,route) bu şekilde kulllanılabilir mi?

Backend Frontend i anladım hocam. Bi nevi server tarafı, browser tarafı.

2 veritabanı kullanma sebebim; performanstı. Biri phpde oluşturduğum fc_ram (shmod kullanan) RAM tabanlı veritabanı (redis/memcache) ile aynı işi görmekte, diğeride MySQLdi. Veri okuma hızını arttırmaya çalıştım.

Reacht üzerinde baya araştırma yaptım mantıklı geliyor.

Sorunum; Max Performs (memcache sistemler, ve tıkanmalar olmaması), Tutarlılık, non/blocking veri döndürme(browsera) ve bunları devasa bir projede işler karışmadan yapmak.

Yardımınız için çok teşekkürler.


Güzelmiş, bende PHP öğrenirken file tabanlı bir veritabanı yapmıştım, ancak Redis basit bir KV storage değil. İleride Redis'i de scale etmen gerekebilir. Senin geliştirdiğin sınıfta replication özelliği var mı? Yok. Partitioning var mı? Yok. Bunun gibi şeyler ileride çok önemli olabiliyor.

Illuminate komponentlerinin hepsi standalone çalışabiliyor diye biliyorum, ancak kendim denemedim bu yüzden yalan bilgi vermiş olmayayım.

Eğer ilk kez böyle bir oyun geliştirmeyi düşünüyorsan bırak karışsın. Geliştirirken bir taraftan öğreneceksin. Daha ortada fol yok yumurta yokken "devasa proje" yi düşünmene gerek yok. Başla geliştirmeye, takıldığın yerleri refactor edersin.

usta şu bölümde yorumu okunacak nadir insanlardansın eline koluna sağlık

hocamız web developing in dünyaca üstadlarındandır :http://www.anilunal.com/skills
Başarılarınızın devamını dilerim @TSF Aristona



< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @TSF Aristona
T
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: .fcan
Phalcon Framework , Redis , Reacht , MySQL kombinasyonu yapmayı düşünüyorum artık hocam. Phalcon , MVC sistemleri laravel ile benzer. Performansı sorarsanız 3e katlıyor laraveli.
Önceki projelerimden bayağı bir tecrübe kazanmıştım saf Phpde bilgi düzeyim eklentiler hariç %90a yakındı.Fakat sonra (Tanıdıklar tavsiye etti) Laravele ilgim oluştu, (ilk frameworkum) laravel ilede ufak tefek projeler geliştirdim fakat laravel bilgi düzeyim %40 civarında. MVC çok hoşuma gitti. Performansından ilk başlardan beri şüphem vardı. Performans hep önem veririm projelerimde.
Phalcona geçince çok sevdiğim BLADE sistemini bırakmak zorunda kalacağım.


Phalcon, 0 konfigürasyonla kesinlikle Laravel'den hızlı, çünkü C extensionu halinde geliştirildi. Ancak, düzgün konfigürasyon ile aradaki fark büyük ölçüde kapanıyor. 3 kat hızlı olabilir, ancak bu demek değildir ki Laravel 10M hit kaldırırken Phalcon 30M hit kalsırsın. İleride o durum eşitleniyor yardımcı araçlar aracılığıyla. (Redis, Varnish, hhvm, opcache vs)

Şöyle düşün, Phalcon 0'dan 100'e 3 saniyede çıkıyor. Laravel 9 saniyede çıkıyor, ancak gitmeleri gereken yol 500KM. Bu yüzden uzun vadede bir önemi kalmıyor framework performansının.

Bu arada, benmi yanlış anlıyorum seni? HTML5 oyun geliştirmek istemiyormuydun? Blade ile bir işin olmuyorki?

quote:

Orijinalden alıntı: Video Tapes
usta şu bölümde yorumu okunacak nadir insanlardansın eline koluna sağlık


Teşekkür ederim.
quote:

Orijinalden alıntı: .fcan
hocamız web developing in dünyaca üstadlarındandır :http://www.anilunal.com/skills
Başarılarınızın devamını dilerim @TSF Aristona


Hayır, değilim. Seviyesine gelemeyeceğim birçok yazılımcı var. Onların yanında bir hiçim.


Bu mesaja 2 cevap geldi.
A
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: TSF Aristona

quote:

Orijinalden alıntı: .fcan
Phalcon Framework , Redis , Reacht , MySQL kombinasyonu yapmayı düşünüyorum artık hocam. Phalcon , MVC sistemleri laravel ile benzer. Performansı sorarsanız 3e katlıyor laraveli.
Önceki projelerimden bayağı bir tecrübe kazanmıştım saf Phpde bilgi düzeyim eklentiler hariç %90a yakındı.Fakat sonra (Tanıdıklar tavsiye etti) Laravele ilgim oluştu, (ilk frameworkum) laravel ilede ufak tefek projeler geliştirdim fakat laravel bilgi düzeyim %40 civarında. MVC çok hoşuma gitti. Performansından ilk başlardan beri şüphem vardı. Performans hep önem veririm projelerimde.
Phalcona geçince çok sevdiğim BLADE sistemini bırakmak zorunda kalacağım.


Phalcon, 0 konfigürasyonla kesinlikle Laravel'den hızlı, çünkü C extensionu halinde geliştirildi. Ancak, düzgün konfigürasyon ile aradaki fark büyük ölçüde kapanıyor. 3 kat hızlı olabilir, ancak bu demek değildir ki Laravel 10M hit kaldırırken Phalcon 30M hit kalsırsın. İleride o durum eşitleniyor yardımcı araçlar aracılığıyla. (Redis, Varnish, hhvm, opcache vs)

Şöyle düşün, Phalcon 0'dan 100'e 3 saniyede çıkıyor. Laravel 9 saniyede çıkıyor, ancak gitmeleri gereken yol 500KM. Bu yüzden uzun vadede bir önemi kalmıyor framework performansının.

Bu arada, benmi yanlış anlıyorum seni? HTML5 oyun geliştirmek istemiyormuydun? Blade ile bir işin olmuyorki?

quote:

Orijinalden alıntı: Video Tapes
usta şu bölümde yorumu okunacak nadir insanlardansın eline koluna sağlık


Teşekkür ederim.
quote:

Orijinalden alıntı: .fcan
hocamız web developing in dünyaca üstadlarındandır :http://www.anilunal.com/skills
Başarılarınızın devamını dilerim @TSF Aristona


Hayır, değilim. Seviyesine gelemeyeceğim birçok yazılımcı var. Onların yanında bir hiçim.

etme tutma hocam :) şu githubda yayınladığın makale hala aklımdan cıkmıyor:) bu arada hala kendini yetersiz görmen takdire şayan :)
Türkiyede bulunan kaliteli programcılardan birisiniz emin olabilirsiniz buna.
Kariyer yolunda başarılar dilerim size


Bu mesaja 1 cevap geldi.
P
11 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: TSF Aristona

quote:

Orijinalden alıntı: .fcan
Phalcon Framework , Redis , Reacht , MySQL kombinasyonu yapmayı düşünüyorum artık hocam. Phalcon , MVC sistemleri laravel ile benzer. Performansı sorarsanız 3e katlıyor laraveli.
Önceki projelerimden bayağı bir tecrübe kazanmıştım saf Phpde bilgi düzeyim eklentiler hariç %90a yakındı.Fakat sonra (Tanıdıklar tavsiye etti) Laravele ilgim oluştu, (ilk frameworkum) laravel ilede ufak tefek projeler geliştirdim fakat laravel bilgi düzeyim %40 civarında. MVC çok hoşuma gitti. Performansından ilk başlardan beri şüphem vardı. Performans hep önem veririm projelerimde.
Phalcona geçince çok sevdiğim BLADE sistemini bırakmak zorunda kalacağım.


Phalcon, 0 konfigürasyonla kesinlikle Laravel'den hızlı, çünkü C extensionu halinde geliştirildi. Ancak, düzgün konfigürasyon ile aradaki fark büyük ölçüde kapanıyor. 3 kat hızlı olabilir, ancak bu demek değildir ki Laravel 10M hit kaldırırken Phalcon 30M hit kalsırsın. İleride o durum eşitleniyor yardımcı araçlar aracılığıyla. (Redis, Varnish, hhvm, opcache vs)

Şöyle düşün, Phalcon 0'dan 100'e 3 saniyede çıkıyor. Laravel 9 saniyede çıkıyor, ancak gitmeleri gereken yol 500KM. Bu yüzden uzun vadede bir önemi kalmıyor framework performansının.

Bu arada, benmi yanlış anlıyorum seni? HTML5 oyun geliştirmek istemiyormuydun? Blade ile bir işin olmuyorki?

quote:

Orijinalden alıntı: Video Tapes
usta şu bölümde yorumu okunacak nadir insanlardansın eline koluna sağlık


Teşekkür ederim.
quote:

Orijinalden alıntı: .fcan
hocamız web developing in dünyaca üstadlarındandır :http://www.anilunal.com/skills
Başarılarınızın devamını dilerim @TSF Aristona


Hayır, değilim. Seviyesine gelemeyeceğim birçok yazılımcı var. Onların yanında bir hiçim.

Hocam Phalcon öğrenmeye başladım; kesinlikle sizinde Phalcona geçmenizi tavsiye ederim. Bir çok sistem Laravelle aynı.(Neredeyse aynı sintaks ve aynı dosya/klasörler) Redis, Varnish, hhvm, opcache türevi araçları var.(Yani dahada hızlandırabilirsiniz) Composer veya pharla uğraşmak gerekmiyor.
Hocam uzun vadede bir önemi kalmıyor olabilir. Ama her oyuncu işlem yaptığında o yol uzuyor. 500KMden 600e çıkıyor. Yani Hız önemli.
Blade dediğim {{ }} @section @if @else sistemi hocam.
Laraveldeki BLADEin Phalconda karşılığı VOLT. Neredeyse aynı sistem. fark uzantıda .blade.php ile .volt .
Javascript ile oyun geliştireceğim hocam. HTM5 bilmiyorum

Teşekkürler.





< Bu mesaj bu kişi tarafından değiştirildi Perceptron -- 14 Ağustos 2014; 13:15:22 >

< Bu ileti m.bolumsonucanavari.com kullanılarak atıldı >

O
11 yıl
Yarbay

sanal sunucu ve yerleşik bir dil kullanmadan başarabilirsen şahsen alkışlarım.
fakat pek mümkün görünmüyor. php sürekli bağlantı için geliştirilmediği için bence vakit kaybı olacaktır.
şu an Özkula olarak bizim sattığımız en düşük sanal sunucuya 2 tane counter strike sunucu kurabiliyorsun.
senin projen başta çok daha az sistem kaynağı tüketecektir. ayrıca multi threading gibi nimetlerden de faydalanabilirsin sunucu üzerinde kodlarsan.

maliyet açısından bakıyorsan aslında maliyeti yok. kendi bilgisayarına virtual box + centos kurup sanal sunucu mantığı ile çalışabilirsin.
projen son kullanıcıya hazır hale geldiğinde ücretli herkese açık bir sanal sunucuya taşırsın.

tercih senin ama bence dünyayı tekrar keşfetmeye gerek yok. c++ ile soket bağlantısına sayısız örnek var zaten.
ziyaretçi tarafında da html5 veya flash ile çözebiliyorsun örnekleri var.
bilindik yollardan gidersen projen çok daha kısa sürede hayata geçer.


Bu mesaja 1 cevap geldi.
P
11 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: orcnd

sanal sunucu ve yerleşik bir dil kullanmadan başarabilirsen şahsen alkışlarım.
fakat pek mümkün görünmüyor. php sürekli bağlantı için geliştirilmediği için bence vakit kaybı olacaktır.
şu an Özkula olarak bizim sattığımız en düşük sanal sunucuya 2 tane counter strike sunucu kurabiliyorsun.
senin projen başta çok daha az sistem kaynağı tüketecektir. ayrıca multi threading gibi nimetlerden de faydalanabilirsin sunucu üzerinde kodlarsan.

maliyet açısından bakıyorsan aslında maliyeti yok. kendi bilgisayarına virtual box + centos kurup sanal sunucu mantığı ile çalışabilirsin.
projen son kullanıcıya hazır hale geldiğinde ücretli herkese açık bir sanal sunucuya taşırsın.

tercih senin ama bence dünyayı tekrar keşfetmeye gerek yok. c++ ile soket bağlantısına sayısız örnek var zaten.
ziyaretçi tarafında da html5 veya flash ile çözebiliyorsun örnekleri var.
bilindik yollardan gidersen projen çok daha kısa sürede hayata geçer.



Tavsiyeleriniz için çok teşekkür ederim.
Seçtiğim kombinasyon ile daha hızlı geliştirip, oynanan halini daha erkek görebilirim.
Eğer yaptığım hesaplar ilerde performansa daha gereksinim gerektirirse,
Sunucu tarafında, C++ / Soket:80 +8080 / MySQL kombinasyonuna geçebilirim.
PHPci olduğum için kendimi son noktaya kadar geliştirmek istiyorum. İlerde C++ ile sunucu projelerimde var.



< Bu ileti mini sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.