2011-08-18 14 views
6

Sono principiante in applicazioni in tempo reale (ad es. Chat, MMORPG), ma sono bravo con php e ajax. Ho programmato una chat usando php e ajax (intervallo 1000ms). Dopo, il mio sito è diventato molto pesante a causa della grande pressione sul server !!Realtime e php?

Desidero informazioni su come ridurre la pressione sul server.

grazie in anticipo

+3

considerare un linguaggio più appropriato. –

+0

Concordo con Dagon: un'applicazione in tempo reale punirà davvero un singolo server che esegue PHP. Ho riscritto un'applicazione PHP in tempo reale per utilizzare il nodo.invece, e ottiene migliaia di colpi al minuto senza alcun dramma. –

+0

Se si è soddisfatti della propria infrastruttura esistente, è possibile considerare di esternalizzare la parte dell'infrastruttura in tempo reale a un [servizio in tempo reale ospitato] (http://www.leggetter.co.uk/real-time-technologies-guide #-servizi in hosting). – leggetter

risposta

1

Cercare long-polling ajax

Richiede solo una volta al minuto (le richieste non sono 60/minuto, ma 1/minuto)

+0

Ciò causa anche la pressione sul server. La chat faceboock è molto veloce? Non so come fa a crearlo !! – Lokers

+3

@Lokers: Facebook ha 60.000 server ... Sì, la chat di Facebook è molto veloce – genesis

+0

I siti utilizzano solo un host ed è veloce. – Lokers

0

Si può anche avere uno sguardo alla ajax spingere il motore per fare streaming di dati in tempo reale (affermano che si adatta molto bene). http://www.ape-project.org/

+0

Grazie, lo proverò. – Lokers

1

Si potrebbe provare a convertire la chat in un'applicazione Web basata su socket. Non conosco le differenze nelle prestazioni tra l'utilizzo di AJAX o l'uso di socket, ma il mio utilizzo di socket per questo mi sembra più logico. :)

+0

Grazie Sapevi che un sito o un post mi fornisce informazioni sulla presa ?? – Lokers

+0

http://devzone.zend.com/article/1086 o http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/ Si potrebbe anche Google per qualcosa di simile 'presa chat php '.. :) – Abbas

1

Si consiglia di memorizzare nella cache i risultati. L'impostazione della cache memcached (chiave => valore) può ridurre il carico del database.

Quando arriva una nuova richiesta, chiedere all'applicazione memcache se il valore cercato è nella cache. Altrimenti chiedere al motore del database il valore, restituire il valore all'utente e memorizzarlo nella cache per la volta successiva.

1

libreria PHP Interessante fornendo agli sviluppatori gli strumenti per creare in tempo reale, le applicazioni bidirezionali tra client e server nel corso WebSockets: http://socketo.me/

1

Per quanto ne so, ci sono diverse librerie disponibili per creare applicazioni non bloccanti e in tempo reale come chat e giochi in tempo reale.

  1. reactphp, implementato in puro PHP, come nodejs, ma lo sviluppo non sembra molto attivo di recente.

  2. Skyray, una libreria di rete per PHP writen in C http://github.com/SkyrayLabs/Skyray

    Questa è una libreria di rete per PHP creata da me, è ancora in fase di sviluppo attivo.

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

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