Avatar billede Tony Juniormester
08. maj 2005 - 11:43 Der er 15 kommentarer og
2 løsninger

Gør klient opmærksom på datatrafik i database?

Jeg har en lille intern chat på et site, så div. parter kan have mindre dialoger. Det virker sådan set fint nok, men problemet er, at man skal være logget ind på chatten for at vide, om der er andre logget på. Derfor, findes der en (gerne afprøvet) metode der selvstændig kan trigger en event på en anden side, når der f.eks. sendes en besked i chatten?

Hvad der ligger lige for er jo at have et objekt f.eks. en iFrame der kikker ned i en given database for at se om der er trafik, men den metodik kræver, at det er klienten der sender en forespørgsel til databasen. Og da jeg ikke er meget for tanken om et objekt der står og sender uendelige forespørgsler til databasen, er jeg ude efter en metode, der gør det modsatte. D.v.s. databasen gør klienten opmærksom på, at der er trafik?

Som det for kyndige måske vil være temmelig synligt, så er jeg ikke specielt erfaren med ASP og omgangen med databaser i Internetmiljøer, så såvel konceptuelle forslag som egentlige kodeeksempler er meget velkomne.
Avatar billede busschou Praktikant
08. maj 2005 - 11:53 #1
Jeg er ikke helt med på det du søger præcist..så lytter lige med
Hvis det var mig selv så ville jeg have enten et felt i databasen "online"
Det kunne så blive sat hver gang en logger ind, og fjernes hvergang en logger ud
Så er det blot at slå op i databasen og se hvor mange som er "online"
Avatar billede Tony Juniormester
08. maj 2005 - 11:57 #2
Ja, det er på plads, men det kræver to ting. Dels at man er logget ind på chatten og dels, at man selv sender forespørgslen til databasen (som f.eks. når man sender et indlæg).

Jeg skylder at sige, at det hele foregår på et Intranet, så det er intet problem at inkluderer et givet objekt på alle øvrige sider.
Avatar billede kalp Novice
08. maj 2005 - 11:59 #3
Du kan vel godt oprette forbindelse til databasen og hente værdien i online på andre siger end lige der hvor man er logget ind?
Avatar billede busschou Praktikant
08. maj 2005 - 12:00 #4
Man styrer jo selv database adgangen. Så hvis du vil vise alle brugere "uden de er logget ind" hvor mange som er logget ind. Så slår du da bare op i databasen over dem som er logget ind?
Avatar billede kalp Novice
08. maj 2005 - 12:01 #5
ops. siger = sider:)
Avatar billede Tony Juniormester
08. maj 2005 - 12:11 #6
Ja, jeg (klienten) kan godt hente værdien ved en aktiv gerning, f.eks. ved at logge ind eller foretage mig noget andet på en helt tredje underside uafhængig af chatten.

Ja, jeg kan godt selv slå op i databasen, men det kræver, at det er mig (klienten) der sender en forespørgsel. Jeg er ude efter, at databasen automatisk sender til klienten, uden at klienten selv er nød til aktivt at opdaterer.

Altså - et eksempel:

Brugeren Lone er på en given side på Intranettet og er f.eks. ved at planlægge undendelsen af et nyhedsbrev og har derfor ikke chatten åben. Imens logger en anden bruger John i et andet land på chatten og 'råber': Hej Lone, er du på?

Så snart databasen har modtaget Johns tekststreng så sender den en event til et objekt der f.eks. får en gif til at bevæge sig eller afgiver en lyd på den underside Lone befinder sig på. Hun ved så, at der er nogen på chatten og kan logge ind og se hvem det er.
Avatar billede busschou Praktikant
08. maj 2005 - 12:13 #7
så er jeg med - men ved ikke hvordan man klarer den desværre
Avatar billede Tony Juniormester
08. maj 2005 - 12:16 #8
OK busschou, helt i orden. Tak for dit engagement :-)
Avatar billede winman Nybegynder
08. maj 2005 - 17:34 #9
Tony... det er sådan at en Browser godt nok er en GUI for alt muligt men i virkeligheden er det kun en dum klient som kun gør hvad den får at vide fra brugeren. Derfor det som du ønsker er et program from modtager kommandoer fra en database server og det findes ikke i en Browser. Browseren skal simpelthen lave den forspørgsel. der er ingen vej unden om det...
End andet er også at hvis "LONE" ikke er logget ind, hvor skulle Databasen så vide fra om hun er tilstede eller hvilken IP den skal sende info'en til... ????
Men det du kan gøre er, at lave et felt i din tabel som hedder SessionID hvor du "når hun logger ind" gemmer hendes SessionID fra serveren samtidig med du gemmer hendes SessionID i en global.asa Application variable med dato og ip for hvornår hun er logget ind og hvilken IP hun er på. Herefter kan du så bare sige "på hendes browser" at hun skal se om der er findes noget info til hende via hendes sessionID. osv.

Hvis jeg skal sende dig et eksempel siger du bare til... så bikser jeg bare noget sammen til dig.
Avatar billede Tony Juniormester
08. maj 2005 - 20:12 #10
winman: Ja, det anede mig, at det forholdt sig sådan.

Tak for tilbudet, men jeg tror jeg sætter en lille dims op der selv forespørger, f.eks. hvert tredje minut, om der er nogen der er logget på chatten. Ja, det er 'lidt' en "pain in the *ss" at sende alle de forespørgsler, men hvis det nu ikke kan være anderledes, så ... :-(

***
Er der nogen der kender et lille programm der har et webinterface så 'John' fra biblioteket i Cape Town kan logge på en hjemmeside og sende en besked til Lone's program? D.v.s. noget a la ICQ, men med en webdel også ...
Avatar billede winman Nybegynder
08. maj 2005 - 23:30 #11
nej kender ikke et men kan da godt programmere det... det er ikke noget problem...
Avatar billede Tony Juniormester
09. maj 2005 - 06:35 #12
winman: Det tilbud lyder rigtig meget interessant!

Hvad, hvordan og hvorledes kan vi få det til at blive virkelighed?
Avatar billede winman Nybegynder
09. maj 2005 - 08:29 #13
Jamen der er lige to ting vi skal tage i betraktning.
1) Klient programmet skal lytte på en bestemt port, og skal derfor kunne routes igennem firewalls & routere...
2) Server Programmet skal ligeledes have en åben port som den kan sende igennem..

Med mindre vi igen laver et klient program, som selv finder ud af, om der er noget til den enkle person og derved reagere.
I dette tilfælde har vi ikke brug for port styring igennem firewalls osv.
Det vil sige at dette er den nemme løsning...
Avatar billede Tony Juniormester
09. maj 2005 - 08:50 #14
Uha, den nemme løsning med så få fejlmuligheder er da så afgjort at foretrække ...
Avatar billede Tony Juniormester
03. juni 2005 - 16:16 #15
Jeg tror vi skal lukke dette spørgsmål nu. Jer der ønsker nogle point - smid venligst et svar ...
Avatar billede busschou Praktikant
03. juni 2005 - 16:45 #16
ved ikk om jeg fortjener nogen.. men her er da et ;o)
Avatar billede Tony Juniormester
22. juni 2005 - 20:23 #17
Jow da - Tak! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester