|
[ iizuzetan @ 12.01.2009. 19:32 ] @
| Pretrazio sam ovaj forum i guglao danima i svuda sam nailazio na istu foru za odredjivanje ko je online, koja bi se mogla objasniti citatom pisanija jednog korisnika ovog foruma:
Citat: hatebreeder: ....... Na kraju samo napravis neku funkciju za ispis koja proverava ko je bio izmedju trenutnog vremenskog intervala i onoga koji je bio pre npr 5 minuta
znaci:
- pri svakom ucitavanju stranice korisniku koji je ucitava se updatuje vreme u bazi
- proveravas koji od korisnika zadovoljava vreme od trenutnog do -5 minuta od trenutnog i to ispisujes......
Medjutim ova fora po meni je vrlo nepouzdana i daje prilicno netacne rezultate. Zasto neko mora na sajtu u roku od 5 minuta da klikne na neku stranicu? Na primer ja sam na ovom forumu provodio vreme i duze od 5 minuta, citajuci neke teme i razmisljajuci o njima a da nisam kliknuo ni na jednu stranicu. Znaci samo sam posmatrao stranicu i nista vise. Sa druge strane ako povecamo vreme na 15 ili 30 minuta ova fora dace u spisku mnoge clanove kao da su online a u stvari nisu jer su proveli na sajtu na primer recimo 10 ili 12 minuta, nebitno, i otisli sa sajta. Znaci sto vise skracujemo vreme gubimo sve vise iz evidencije one koji ne klikcu na stranice u tom roku. Sa druge srane sto vise produzavamo vreme onda sve vise ubacujemo clanove koji su kao online a koji su u stvari napustili sajt.
Uceci PHP nailazio sam na mnoge probleme koje sam morao da resavam. Svaki put kad sam pokusavao da vidim kako su te probleme drugi resavali nailazio sam na internetu samo na delimicne odgovore i na one koji polovicno resavaju problem. Ja sam uvek "zasukavao" rukave i, verujte, pronalazio resenja mnogo bolja od tih polovicnih. Ovu foru oko odredjivanja ko je online u gornjem citatu smatram takodje polovicnom. Ne verujem da php eksperti na ovakav nacin prave online proveru za visokobudzetne sajtove.
Elem, da skratim. Pokusavao sam da smislim neku precizniju foru za ovaj problem medjutim nikako mi ne ide. Zapravo teoretski to je lako izvodljivo ali da bi se ta teorija sprovela u delo fale mi funkcije (citaj znanje :-) ). Teoretski vrlo prosto moze da se dobije egzaktno precizan podatak o tome ko je u svakom trenutku online a ko nije. Na primer da postoji funkcija tipa online(IPadresa) koja ce proveravati da li registrovanih clan sa tom IP adresom u tom trenutku u svom pregledniku ima otvorenu neku od stranica naseg sajta. Na primer ako ima otvorenu stranicu da funkcija vrati true a ako nema otvorenu da vrati false. E sad neko ce reci da sve hocu na gotovo:). Pa da pitam, nikome ne skodi, da li postoji takva funkcija?
Takodje da li uopste moze da se iscita iz internet preglednika posetioca sajta nekom globalnom funkcijom neka informacija o tome da li je on otvorio nas sajt???
Medjutim posto po internetu nisam nailazio na takve gotove funkcije i na takve pristupe kontam da su ipak ti php eksperti problem resili sa serverske strane. Obzirom da onu gore opsteprihvacenu foru moze da smisli i dete od 5 godina (a koja ne daje tacne podatke) predlazem da pokuamo svi zajedno ovde da nadjemo usavrsenu foru. Sta mislite o tome? |
[ Milan Gligorijevic @ 12.01.2009. 19:51 ] @
Konkterno u mom slučaju deo koji si citirao će bolje obavljati posao od ovoga što predlažeš. Zašto?
Zato što mi je računar tokom celog dana uključen, a sa njim i Opera. U njoj konstantno imam otvoreno barem 10 tabova koje skoro nikad ne zatvaram. Što znači da bi ja uvek bio online ;)
[ iizuzetan @ 12.01.2009. 20:06 ] @
E da sad me potstaknu na jednu ideju. Chatovi imaju mogucnost da vide i one clanove koji nisu aktivni dugo a ipak su na spisku u chatu. Cim se chater iskljuci chat ga izbrise iz liste. Kako je to napravljeno na chatovima?? Garantujem da odgovor na to pitanje ce nam dati dobro resenje za problem ko je online a ko nije!!!
Citat: Milan Gligorijevic: Konkterno u mom slučaju deo koji si citirao će bolje obavljati posao od ovoga što predlažeš. Zašto?
Zato što mi je računar tokom celog dana uključen, a sa njim i Opera. U njoj konstantno imam otvoreno barem 10 tabova koje skoro nikad ne zatvaram. Što znači da bi ja uvek bio online ;)
Pa zar nisi online na tim sajtovima?? Drugo je pitanje da li si aktivan, ali sto se tice da li si online jesi. Eto skripta "na 5 minuta" tebe nece uvrstiti da si online. I zasto mislis da tebe ne treba uvrstiti u online spisak, ne razumem????
[ Nemanja Avramović @ 12.01.2009. 20:13 ] @
Pazi, kad server servira stranicu (i slike) svaka komunikacija sa klijentom se prekida i ti ne možeš da znaš da li je on zatvorio tu stranicu u browseru (odnosno otišao na drugi sajt) ili ne. Jedini način bi bio da preko JS-a i AJAX-a na svakih X minuta tvoja stranica ponovo obaveštava server da je korisnik online, ali ne vidim čemu praviti tako nešto (i dodatno opterećivati server) kad, po meni, informacija o broju online korisnika ne mora biti baš toliko precizna koliko si ti predložio da bude.
[ iizuzetan @ 12.01.2009. 20:19 ] @
A kako na chatovima se tacno zna u svakoj sekundi ko je online a ko nije? Takodje kako na chatovima kad neko izadje sa chata u istom trenutku se brise iz chata jegov nick? Isto kako na primer rade servisi za merenje poseta i odredjivanja koliko su posetilaca online na sajtu (to su on servisi koji daju banere na kojima se prikzuje statistika)?
Citat: Nemanja Avramović: Pazi, kad server servira stranicu (i slike) svaka komunikacija sa klijentom se prekida i ti ne možeš da znaš da li je on zatvorio tu stranicu u browseru (odnosno otišao na drugi sajt) ili ne. Jedini način bi bio da preko JS-a i AJAX-a na svakih X minuta tvoja stranica ponovo obaveštava server da je korisnik online, ali ne vidim čemu praviti tako nešto (i dodatno opterećivati server) kad, po meni, informacija o broju online korisnika ne mora biti baš toliko precizna koliko si ti predložio da bude.
Pa vidi zasto da prikazujemo netacne podatke ili priblizno tacne ako vec moze da se prikazuju tacn podaci.
[ Milan Gligorijevic @ 12.01.2009. 20:35 ] @
Citat: Pa zar nisi online na tim sajtovima?? Drugo je pitanje da li si aktivan, ali sto se tice da li si online jesi. Eto skripta "na 5 minuta" tebe nece uvrstiti da si online. I zasto mislis da tebe ne treba uvrstiti u online spisak, ne razumem????
Ne treba zato što ja možda nisam tada za računarom. Recimo otišao sam na pecanje, a nisam ugasio Operu. I sad sam ja ceo dan online na tim sajtovima koji su mi otvoreni? Zašto kada sam ja na pecanju?
To što mi je neka stranica otvorena ne znači da je ja čitam, a osnovna namena sistema "ko je online" valjda služi da se vidi ko je skoro pristupio sajtu.
[ dakipro @ 12.01.2009. 20:40 ] @
I ti si sad tvojom idejom zasenio sve php experte koji se ocigledno nisu setili toga ranije, al kad bi to moglo tako uopste...
Da bi ucestvovao u igri moras da znas pravila i principe igre da bi mogao da znas sta moze a sta ne, pa barem teoretski. Znaci internet funkcionise po tom principu, korisnici se obrate serveru, i dobiju informacije nazad, server uopste ne brine dalje o tim podatcima. To sto vidjas u chatovima je javascript (ajax, kao sto je Nemanja i rekao gore) a to mozes lako da proveris tako sto otvoris neki web chat prozor, i pratis ajax pozive ka serveru, videces ih na svaku sekundu-dve. Sledeca od opcija je Java ili Flesh, u svakom slucaju oni i dalje ne zaobilaze pravila da klijent (user) kontaktira server za zahtevima preko http (mozda gresim oko jave, ne poznajem tu problematiku). Gasenje chata je ista prica, ugasis prozor, ajax pozove server i odjavi se, ili pak ako se ne javi klijent serveru u 10-15 sekunde server ga skloni jer ocekuje poziv na svakih 3s recimo.
Da je moguce tako lako prikazivati toliko precizne i tacne podatke, oni bi se prikazivali, i to ne samo u php-u vec u bilo kom drugom serverskom jeziku, pa bi ti recimo php-om uvukao samo taj podatak generisan od strane drugog jezika. Mozda moze ActiveX kontrolama za IE, ali znas kad ce neko iole upucen u internet dozvoliti tvom forumu da instalira ActiveX u exploreru?
I opet se sve svede na to vredili li opterecivati server sa toliko zahteva, od strane svakog korisnika pojedinacno na svakih Xs samo da bi neko video ko je online? Naravno da ne, za prosecan sajt. Ako je vec chat u pitanju, onda je to druga prica, i radi se opet tako sto klijent stalno davi server u potrazi za podatcima.
Ja se recimo iskreno i ne secam da sam ikad na nekom forumu obratio paznju da li je neko logovan ili nije, da li je trenutno aktivan ili ne, ili pak koliko je korisnika trenutno aktivno...
Kad budes malo stekao i prakse pored teorije koja ti nije potpuna, videces da postoji tu dosta drugih stvari koje su bitnije od recimo ko je trenutno online 
[ Radovan__III @ 12.01.2009. 20:40 ] @
Citat: iizuzetan: A kako na chatovima se tacno zna u svakoj sekundi ko je online a ko nije? Takodje kako na chatovima kad neko izadje sa chata u istom trenutku se brise iz chata jegov nick? Isto kako na primer rade servisi za merenje poseta i odredjivanja koliko su posetilaca online na sajtu (to su on servisi koji daju banere na kojima se prikzuje statistika)?
Zato sto su chatovi vecinom java aplikacije koje ostvaruju "relativno" stalnu vezu sa korisnikom ti takodje mozes da koristis javu i to ti je i predlozeno iznad ( AJAX).
Sajtvi koji imaju "koliko su posetilaca online na sajtu" upisuju u bazu npr ip i vreme svaki put kad loaduje stranicu tj na neki event, i jednostavno ne upisuje dvaput ljude sa istim ip-em i prikaze samo za proteklih 5 min preko timestamp i cao zdravo
Kao sto vidis glavni momenat je event tj sta ces da uzmes kao dokaz da je korisnik tu, najlakse je da uzmes klik a mozes i ajax --> php koji se poziva na odjedjeno vreme
edit: odgovor pisan u isto vreme kad i dakipro tako da se ponavlja
[ iizuzetan @ 12.01.2009. 20:49 ] @
Aha skontao sam. Znaci skripte, kao sto su PHP skripte, ne mogu da rade te stvari tacno. Znaci samo klijentski jezici to omogucuju. Ok skapirao sam. HVALA. Mada i taj pristup nece dati tacan podatak jer oni koji nemaju instaliranu javu nece biti evidentirani u spisak ko je online na sajtu, ali verovatno takvih ima malo. A jel zna neko gde mogu da nadjem te java skriptice za to ko je online na sajtu a ko nije? Iskreno ne znam nista java programiranju, ali planiram cim zavrsim ucenje PHP-a da predjem na java.
[ ColdKeyboard @ 12.01.2009. 20:56 ] @
Nakon svih postova i dalje ne razumijem zasto si toliko zapeo da se ti
podaci ostvaruju u realnom vremenu ???
Na svim sajtovima gdje sam vidio tako nesto pise "Last active" ili "Recent
activities" i eventualno navedeno u kojem vremenskom intervalu se posmatra.
Ako imas vec neki razlog za tako nesto, mozes uzeti neki AJAX framework i
napraviti funkciju koja bi u odredjenim vremenskim intervalima slala serveru
podatak da je korisnik jos uvijek na toj stranici ali to znaci da mu je
stranica otvorena u browseru ali ne i da je on aktivan.
Ovo sto si spomenuo chat je cista glupost, jer se IM servisi zasnivaju na
totalno drugacijem principu u odnosu na web servis. Kod IM server i klijent
razmjenjuju podatje u realnom vremenu i neprekidno su u kontatku dok je kod
web-a klijent posalje zahtjev serveru, server vrati odgovor i to je to, do
sledeceg zahtjeva = mirovanje.
[edit] Daki me pretekao tako da je ovo ponavljanje... ali mislim da ne moze da skodi :) [/edit]
--
-==ColdKeyboard==-
www.MrdniSe.com
www.SasaKaranovic.com
[ Nikola Poša @ 12.01.2009. 21:00 ] @
Citat: iizuzetan: A jel zna neko gde mogu da nadjem te java skriptice za to ko je online na sajtu a ko nije? Iskreno ne znam nista java programiranju, ali planiram cim zavrsim ucenje PHP-a da predjem na java.
Mozhda sam ja te pogreshno razumeo, ali chini mi se da brkash neke stvari, JavaScript nije Java, imaju samo slichno ime, ali koncepti i proizvodjachi su im totalno drugachiji (Netscape i Sun). Kad kazhesh "java skriptice" verovatno mislish na javascript skripte, poshto Java nije skript jezik, a JavaScript jeste i on se ne kompajlira za razliku od Jave, zato se i zove Script...
[ ColdKeyboard @ 12.01.2009. 21:03 ] @
Da mozda pojasnis sta tacno zelis ? Za sta ti tacno treba takva php/js skripta ?
Sada kada vidis da to ne mozes da uradis preko samog PHP-a mozda da nam kazes sta si naumio
pa da nadjemo neku alternativu...
[ iizuzetan @ 12.01.2009. 21:18 ] @
Citat: ColdKeyboard: Da mozda pojasnis sta tacno zelis ? Za sta ti tacno treba takva php/js skripta ?
Sada kada vidis da to ne mozes da uradis preko samog PHP-a mozda da nam kazes sta si naumio
pa da nadjemo neku alternativu...
Zelim da napravim sajt za upoznavanje ljudi kao sto je poljubac recimo ili slicni njemu. Jedna od najbitnijih stvari na takvim sajtovima za korisnike je tacan odgovor na pitanje ko je online a ko nije. Ako koristiim skripte koje daju priblizno tacne podatke rizikujem da izgubim poverenje posetilaca.
[ Man-Wolf @ 12.01.2009. 21:41 ] @
@iizuzetan - Imas ponudjena dva resenja za tvoj problem:
1. JavaScript skripta koja putem AJAX-a konstanto salje serveru podatke da je korisnik online (dok je online naravno).
2. Pomenuo si u prvom post-u da imas dara za stvaranje novih resenja, tako da mozes da se bacis na posao ako ti prvo resenje ne odgovara.
[ ColdKeyboard @ 12.01.2009. 22:41 ] @
Zasto jednostavno ne bi stavio kada je ko posljednji put bio na stranici ? Mislim da 90% sajtova koristi ili to ili neki frame koji provjerava privatne poruke pa i ujedno i javi serveru da je korisnik online ali za to ti opet treba js/ajax.
Ideja je po meni besmislena, uzevsi u obzir da ako bi taj sajt imao recimo 5k online korisnika koji bi svakih 1min slali serveru da su online... mislim da to bespotrebno opterecuje server a korisnicima ne znaci bas toliko.
Uostalom, kakva je razlika ako ja otvorim stranicu i ostavim je da stoju tu ili otvorim pa sacuvam i diskonektujem se sa neta ? Stranica ce i dalje ostati otvorena ali ja ne moram da je gledam... Uostalom kakva je korist od toga ako recimo ti nesto promjenis na stranici koju korisnik "trenutno" gleda, to svejedno on nece vidjeti dok sledeci put ne otvori istu tu stranicu tako da je besmisleno i zbog toga...
Da rezimiram: To sto ti hoces po meni je nepotrebno i besmisleno, mislim da je bit takvih sajtova ipak u necemu drugom. Da li se moze uraditi ? Naravno da moze, ali pitanje je koju cijenu ces ti morati da platis, i korisnici zajedno sa serverom...
[ Predrag Supurovic @ 13.01.2009. 01:12 ] @
Citat: iizuzetan: Zelim da napravim sajt za upoznavanje ljudi kao sto je poljubac recimo ili slicni njemu. Jedna od najbitnijih stvari na takvim sajtovima za korisnike je tacan odgovor na pitanje ko je online a ko nije. Ako koristiim skripte koje daju priblizno tacne podatke rizikujem da izgubim poverenje posetilaca.
Kada budes zano dovoljno da napravis taj sajt, veruj da ce ti resenje tog problema sa prikazom ko je online biti macji kasalj.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|