chat - metoda optima - tipic sau server?

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

sergiu_802
Average Member
Mesaje: 120
Membru din: Joi Mar 25, 2004 5:47 pm

chat - metoda optima - tipic sau server?

Mesajde sergiu_802 » Lun Iun 25, 2007 1:21 pm

ma intereseaza in mod special comunicarea intre 2 useri, dar si chat general
comunicarea dintre useri se face:
A. tipic
a. user1 -> ajax -> php -> db(write)
user2 -> ajax -> php -> db(read)
b. user2 -> ajax -> php -> db(write)
user1 -> ajax -> php -> db(read)

dezavantaje:
- un prieten care e admin de server ni-a spus ca as avea destule probleme cu host-ul deoarece la multi nu le convine sa le mananci mysql-ul cu atatea input/select -uri pe minut(~1 input + 1 select la 6-10 s)
avantaje:
- implementare usoara

B. server chat(server socket-uri php)
a. user1 -> ajax -> server(send)
user2 -> ajax -> server(recive)
b. user2 -> ajax -> server(send)
user1 -> ajax -> server(recive)

- cata memorie ar manca un astfel de server? (este un php care ruleaza neatrerupt si tine datele intern, ca variabile)
- este mai bine un server general sau cate un server pt. fiecare dicutie in parte? (un server general ar trebui sa ruleze tot timpul, un server individual ruleaza doar atata timp cat cei 2 comunica - cu un anume timeout dupa care.. do_some(); exit(); )

dezavantaje:
- implementare mai complexa !?
avantaje:
- nu se mai fac atatea input/select -uri in mysql
- mult mai scurt timpul de raspuns user1 -> user2 si viceversa (asa cred)

astept pareri pro si contra, solutii mai bune, mai optime, ... ce ar putea fi de folos



Avatar utilizator
mblaky
Average Member
Mesaje: 146
Membru din: Mar Sep 11, 2007 2:57 pm

Mesajde mblaky » Mar Oct 09, 2007 3:47 pm

vreau si eu un exemplu simplu ajax+php+mysql intre 2 useri :)

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Joi Oct 18, 2007 12:14 am

Se poate evita folosirea serverului MySQL retinand dialogul intr-un fisier text:

user1 -> ajax -> php -> writeFile // adauga mesajul user1 in fisier
user2 -> ajax -> php -> writeFile // adauga mesajul user2 in fisier

O functie javascript apelata prin setInterval() executa la fiecare user:

userX -> ajax -> php -> readFile

si pentru a nu citi ceea ce stie deja, retine pointerul din fisier pentru accesarea urmatoare.

Evident la intervale mari de timp sau la cerere fisierul se poate salva intr-o tabela MySQL.

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Joi Oct 18, 2007 7:57 am

E posibil ca folosind un fisier text sa scada putin viteza. MySQL-ul nu o sa crape la 1000 query-uri/secunda (presupunand ca vor fi conectati 1000 de useri in acelasi timp).
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Joi Oct 18, 2007 10:10 am

Eu sugerez un server dedicat numai pentru chat (gen communication server de la adobe) + flash.

Uite eu m-am jucat cu http://www.smartfoxserver.com/ pentru conferinte video, multiplayer flash online games si evident chatting.
Cred ca e mult mai usor si mai bine decat cu un fisier pe care sa-l freci, si nu are nevoie de refresh.


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 0 vizitatori