2011-08-18 9 views
6

Jestem początkujący w aplikacjach w czasie rzeczywistym (np. Chat, MMORPG), ale jestem dobry w php i ajax. Zaprogramowałem czat za pomocą php i ajax (Interval 1000ms). Po tym, moja strona stała się bardzo ciężka z powodu dużej presji na serwerze !!Realtime i php?

Chcę informacji o zmniejszeniu nacisku na serwerze.

góry dzięki

+3

rozważyć bardziej odpowiedni język. –

+0

Zgadzam się z Dagonem - aplikacja działająca w czasie rzeczywistym naprawdę ukarze pojedynczy serwer z PHP. Przepisałem aplikację PHP w czasie rzeczywistym, aby używać węzła.js zamiast tego, i dostaje 1000 trafień na minutę bez żadnego dramatu. –

+0

Jeśli jesteś zadowolony z istniejącej infrastruktury, możesz rozważyć outsourcing części infrastruktury w czasie rzeczywistym do [usługi hostowanej w czasie rzeczywistym] (http://www.leggetter.co.uk/real-time-technologies-guide # hostowane usługi). – leggetter

Odpowiedz

1

Look dla long-polling ajax

Wnioskuje tylko raz na minutę (wnioski nie są 60/minut, ale 1/min)

+0

Powoduje to również presję na serwerze. Czat na facebooku jest bardzo szybki? Nie wiem jak to zrobić, aby to zrobić !! – Lokers

+3

@Lokers: Facebook ma 60 000 serwerów ... Tak, czat na facebooku jest bardzo szybki. – genesis

+0

Istnieją witryny korzystające tylko z hosta i jest szybki – Lokers

0

Można również zapoznać się z AJAX popychaj silnik do przesyłania danych w czasie rzeczywistym (twierdzą, że naprawdę dobrze się skaluje). http://www.ape-project.org/

+0

Dzięki, sprawdzę to. – Lokers

1

Możesz spróbować przekonwertować czat na aplikację internetową opartą na gniazdach. Nie wiem o różnicach w wydajności między używaniem AJAX a używaniem gniazd, ale moje używanie gniazd dla tego brzmi dla mnie bardziej logicznie. :)

+0

Dziękujemy Czy znasz stronę lub wpis zawiera informacje o gnieździe ?? – Lokers

+0

http://devzone.zend.com/article/1086 lub http://www.devshed.com/c/a/PHP/Socket-Programming- With-PHP/ Możesz również znaleźć coś dla Google'a czat php ".. :) – Abbas

1

Możesz chcieć buforować wyniki. Ustawienie pamięci podręcznej memcached (key => value) może zmniejszyć obciążenie bazy danych.

Gdy pojawi się nowe żądanie, twoja aplikacja zapyta memcache, czy szukana wartość znajduje się w pamięci podręcznej. W przeciwnym razie spytaj silnika bazy danych o wartość, zwróć wartość użytkownikowi i zapamiętaj ją następnym razem.

1

Ciekawe biblioteki PHP zapewniając programistom narzędzia do tworzenia w czasie rzeczywistym, dwukierunkowy aplikacji między klientami i serwerami nad WebSocket: http://socketo.me/

1

Z tego co wiem, dostępnych jest kilka bibliotek do budowy aplikacji nieblokujących i działających w czasie rzeczywistym, takich jak czat i gra w czasie rzeczywistym.

  1. reactphp, zaimplementowany w czystym PHP, jak nodejs, ale rozwój wydaje się ostatnio mało aktywny.

  2. Skyray, bibliotekę sieci dla PHP napisany w C http://github.com/SkyrayLabs/Skyray

    Jest to biblioteka sieci dla PHP stworzony przeze mnie, jest nadal aktywnie rozwijających się.

  3. swoole, https://github.com/swoole/swoole-src

  4. phpdaemon, https://github.com/kakserpom/phpdaemon