Programiranje Chat sistema podobnega FB
 
Jacky 9. dec 2013 23:27:24 Pridružen od:
22. apr 2012
73 objav
53 15 0
#1

Pozdravljeni mojstri!



Trenutno pišem CHAT sistem za eno stranko ampak sem naletel na en velik problem ki ga rešujem že cel tedn. Zadeva je napisana v PHP + MYSQL + Javascript (ajax pretežno) deluje podobno kod FB Chat z različnimi zavihki. Zadevo imam zasnovano z eno tabelo ki ima nasledne vrstice: "ID, Sender, Reciever, Message, Date". Torej na poslano sporočilo se shrani v vrsto "Sender" id uporabnika ki pošlje sporočilo, v vrstico "Reciever" id uporabnika ki prejema sporočilo. Zdaj seveda na tak način ne morem prikazat zadnjih sporočil in pa shranit trenuten status samega zavihka. Zato sem takoj pomislil da bi ustvaril še eno tabelo z "ID, Sender, Reciever, Status, Date, Lastupdate" potem pa na sporočilih samo uporabil "TAB ID, Date, Message" in pri izpisu bi uporabil le te podatke.



Ampak na tak način pa spet pridem do naslednjega problema da bi se "status" pa "lastupdate" delila z obema uporabnikoma!



Vem da sem spregledal nekaj očitnega ampak se nikakor ne morem spomniti česa, upam da je bilo vprašanje razumljivo.

Prosim za pomoč, Hvala!


všeč(0) ni všeč(0) spam(0)
 
crnazverinica 10. dec 2013 04:16:41 Pridružen od:
30. apr 2012
139 objav
154 163 4
#2

Mogoče v razmislek, če bo dosti ljudi obešenih na chatu potem se zna zgodit da se ti zabaše server pri takem klasičnem pristopu. Pogooglaj za node.js in podobne zadeve.


všeč(2) ni všeč(2) spam(0)
 
Jacky 10. dec 2013 11:42:29 Pridružen od:
22. apr 2012
73 objav
53 15 0
#3

Ja o tem sem že tudi razmišljal samo ne razumem jezika v katerem node.js deluje saj sem vedno programiral le v PHP in JS. Moral bi malo bolj se poglobit v zadevo ampak za vsoto katero stranka plačuje se ne splača. Chat pa trenutno deluje dokaj enostavno, ima 4 sec interval tako da niti ni na sistemu ki bi čakal na novo sporočilo. Mislim da v takem primeru je še le slabše saj se baza podatkov ogromno obremenjuje z vprašanji ampak stranko to ne moti torej mene tudi ne :)


všeč(0) ni všeč(0) spam(0)
 
s1l3 10. dec 2013 14:37:56 Pridružen od:
6. jun 2012
345 objav
320 60 1
#4

Če si delal z JS ti node.js ne bi smel delat težav, glede na to da se gre za backend javascript "jezik".



Edit:



Poglej še Meteor.js, bi znalo bit orodje, ki ga iščeš.


všeč(1) ni všeč(0) spam(0)
 
Jacky 11. dec 2013 21:55:43 Pridružen od:
22. apr 2012
73 objav
53 15 0
#5

Nimam pojma kak naj povežem uporabnike z Node.js, shranjujem sporočila v bazo podaktov, itd... Edina prednost uporabe Node.js je da ima Sockets IO in da je hitrejši od Apache ipd. Z vidika programerja, mene, pa se ne splača.



Kod sem omenil v prvem postu imam chat delujoč edini problem mi je shranjevanje datuma zadnjega "focusa" na samem zavihku in shranjevanje statusa zavihka. Ostali sistem je že napisan zato niti ne vidim razloga da zančnem vse skupaj pisat na novo v Node.js.


všeč(0) ni všeč(0) spam(0)
 
SpinX 11. dec 2013 22:41:07 Pridružen od:
17. mar 2007
2618 objav
1720 190 20
#6

V node.js zato, ker je lažje.



Tukaj je recimo en chat že spisan: https://github.com/firebase/firechat


všeč(0) ni všeč(0) spam(0)
Developer? Bi delal v kul podjetju ? http://dlabs.si/jobs
 
Jacky 12. dec 2013 01:06:17 Pridružen od:
22. apr 2012
73 objav
53 15 0
#7

Takšna zadeva se mi zdi malo preveč zakomplicirana trenutno. Nisem ravno neki PRO v samem JS-ju in spreminjat objekte in pa funkcije na takšnem velikem Chat-u se mi zdi daleč preveč glede na to da sem le en korak stran od končanega skripta.



Meni se ne zdi tole lažje pa brez zamere. Je tudi kar ogromno več linij kode za določeno stvar ki ni ravno namenjena javnemu klepetu.



Node.js ipd, je rešitev za večje projekte in spletne strani, osebno ne potrebujem takšne implementacije in iščem rešitev le za en sam majhcen problem. Bom pa definitivno raziskal zadevo za v prihodnjost.



P.S.: Polek tega takšne rešitve zahtevajo dodatno gostovanje česar moja stranka ne bi želela.


všeč(0) ni všeč(0) spam(0)
 
carli 12. dec 2013 06:37:48 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#8

Kje pa je sedaj tvoja težava?


všeč(0) ni všeč(0) spam(0)
 
Jacky 12. dec 2013 13:39:55 Pridružen od:
22. apr 2012
73 objav
53 15 0
#9

carli:

Kje pa je sedaj tvoja težava?




Zadevo sem opisal v prvem postu.

Lahko pa jo tudi malo prikažem z izpiski iz baze podatkov da je lažje razumljiva.



Težava je dejansko v sami obliki tabel v bazi podatkov in prikazovanja sporočil iz nje, saj imam 2 uporabnika na vsaki strani (torej vsak zavihek ima 2 uporabnika ki se pogovarjata med seboj). Sam JS pa že imam napisan kot tudi CSS. Zadeva mi trenutno deluje ampak nimam podatkov o statusu zavihka in pa o zadnjem pregledu sporočil da bi prikazal nova sporočila. Iščem način kako shraniti le ta dva podatka za vsakega uporabnika in zavihek.


všeč(0) ni všeč(0) spam(0)
 
carli 12. dec 2013 13:52:50 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#10

Ne vem kako imaš spisano.



Ko pošlješ podatke, si še zapomni katere IDje sporočil si poslal in jih posodobi da so že bili poslani, naslednji check pošlji samo podatke, ki še niso poslani.



Ko pride uporabnik ponovno gor, pa preveri zadnja sporočila če ni neposlanih, naloži zadnja dva.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se