08. maj 2005 - 11:43Der 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.
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"
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.
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?
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.
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.
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å ...
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...
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.