Avatar billede Slettet bruger
19. februar 2006 - 22:22 Der er 15 kommentarer og
1 løsning

chat, nogen godt idéer?

Hejsa

Jeg skal have lavet en chat funktion i asp...
Jeg har været lidt rundt på nettet for at blive inspireret... Men jeg synes ikke rigtigt jeg har fundet det helt perfekte...
Jeg fandt engang (kan ikke huske URL´en mere) en chat i asp, hvor det folk skrev blev gemt i RAM´ene på serveren, så vidt jeg husker, og på én eller anden finurlig måde skulle chat-siden så ikke refreshes hele tiden, som den ellers så tit skal ved andre metoder...

- Er der nogen som har nogle gode råd eller nogle gode referencer til dette emne?

Eller er der nogen som har en anden idé end lige med asp?

\Dan
Avatar billede driis Nybegynder
19. februar 2006 - 22:31 #1
En chat er nok mest oplagt at lave som en Java applet.

Hvis du vil lave det i ASP uden at siden skal refreshes, skal du bruge noget AJAX teknologi, hvor et Javascript poller serveren for nye beskeder med et givet interval.

I ren ASP kan det laves ved at beskeder postes til serveren, og samtidig returneres evt. nye beskeder. Det kan kombineres med en auto-refresh (men det var jo nok netop det du ikke ville lave).

Et interessant alternativ til ovenstående kunne være et .NET program med ClickOnce deployering; men så vises chatten som et selvstændigt vindue der ikke er en del af browseren. Denne metode giver dog også potentielle problemer med folks sikkerhedsindstillinger og at ClickOnce (mig bekendt) kun virker i nyere Internet Explorer versioner.
Avatar billede softspot Forsker
19. februar 2006 - 22:31 #2
Umiddelbart er en kombination af (lidt) hardcore javascript og noget ikke specielt kompliceret ASP en mulighed. Ved at bruge javascript kan du flytte arbejdet med at opbygge chatten og give den liv ud på klienten (hvor der givetvis ikke laves særlig meget i forvejen) og spare på serverens resurser (hvor der sikkert bliver travlt, hvis du skal have sådan en chat kørende).

Serveren skal i grove træk bare sørge for
  * at gemme nye beskeder
  * hente nye beskeder siden sidste opdatering
  * holde styr på hvem der er online

Klienten skal sørge for
  * at hente og sende data fra og til serveren
  * at opdatere chatvinduet
  * at opdatere brugerlisten
  * m.m.

Så alt efter hvor hård du er til javascript, kan du jo putte features på din chat som tryllebinder brugeren... serveren skal om muligt KUN levere data og IKKE layout.
Avatar billede softspot Forsker
19. februar 2006 - 22:33 #3
Det der med at genopfriske siden er ikke nødvendigt (ikke den visuelle del i det mindste), idet du kan bruge en frame eller en iframe til at sende og hente beskeder fra serveren.
Avatar billede Slettet bruger
19. februar 2006 - 22:42 #4
OK! Mange tak for disse input!

Jeg er bestemt ikke god til Java-scripts! Jeg kan ikke meget mere end "getElementById"-metoden i html-tags... hehe...

- Så jeg tror det bliver en "næsten" ren asp-løsning jeg laver... Men hvordan ville I så foreslå det skal gemmes på serveren?
- I database
- I txt-fil
- Eller noget helt tredje?

\Dan
Avatar billede softspot Forsker
19. februar 2006 - 22:57 #5
Jeg har lige brugt en rum tid på at lave en chat i den form som jeg skitserede ovenfor og der benytter jeg MS SQL Server til at gemme data i. Det du bare skal sørge for, er at bruge lave så få opslag i databasen som muligt, dvs. sørg for at JOIN'e tabeller hvor du kan og undgå opslag i databasen i din løkker.

Du skal også være opmærksom på hvor ofte du opdaterer din chat. Lav evt. en performancemåler på den eller de sider der henter dine chatdata og undersøg hvormeget serveren er i stand til at levere på f.eks. 1 sekund. Til dette formål kan du bruge timer-funktionen (hvis det er VBScript du benytter på serveren).

Eksempel:

startTimer = timer

' hent data og generer output til chatten

slutTimer = timer
response.write "genereringstid: " & slutTimer - startTime

Så kan du nogenlunde beregne dig frem til hvormange brugere der kan være på din chat inden serveren går i knæ... og chatten bliver træls at bruge. Det kan også bruges lokalt på siden for at undersøg hvor der evt. måtte være behov for optimering...
Avatar billede softspot Forsker
19. februar 2006 - 22:59 #6
Jeg har vist lidt travlt med at skrive. Denne:

response.write "genereringstid: " & slutTimer - startTime

skal rettes til dette:

response.write "genereringstid: " & slutTimer - startTimer
Avatar billede plazm Nybegynder
19. februar 2006 - 22:59 #7
ellers kan du lave det som på www.janej.dk med et flashobjekt, der forbinder til en server. Derved kan du have en præcis onlineliste, og chatten har meget lav svartid.
Avatar billede thesurfer Nybegynder
20. februar 2006 - 00:12 #8
Ang 19/02-2006 22:42:09:
Hvis siden ikke skal "refreshe", så kan du ikke gøre det.

Noget SKAL refreshe, før ASP koden kan afvikles.

olebole har engang lavet en chat, der ikke blinker.. søg efter: olebole chat

/theSurfer
Avatar billede Slettet bruger
22. februar 2006 - 10:43 #9
OK! Mange tak for hjælpen allesammen!

- Jeg tror du det ender med at jeg laver chatten i det sprog jeg kan, nemlig asp (100%).

- Smid lige et svar allesammen...!

\Dan
Avatar billede softspot Forsker
22. februar 2006 - 11:01 #10
I "ren" ASP bliver den nok ikke blinkfri, men du må jo skrive igen, hvis der er nogle konkrete javascript-problemstillinger du skal have løst - så er jeg sikker på at der står 10 mennesker i kø for at hjælpe dig :)
Avatar billede softspot Forsker
23. februar 2006 - 12:05 #11
Tak for point :)
Avatar billede Slettet bruger
23. februar 2006 - 12:45 #12
- så lidt!
Avatar billede thomas_b Nybegynder
26. februar 2006 - 23:29 #13
driis ---> hvad mener du med....:

"Hvis du vil lave det i ASP uden at siden skal refreshes, skal du bruge noget AJAX teknologi, hvor et Javascript poller serveren for nye beskeder med et givet interval."

Altså det med at polle servern, betyder det at javascriptet kan hente oplysningerne fra DB uden at reeloade....?
Avatar billede plazm Nybegynder
27. februar 2006 - 06:59 #14
korrekt, AJAX kan hente xml info, uden at refreshe
Avatar billede thesurfer Nybegynder
27. februar 2006 - 10:00 #15
AJAX = JavaScript + XML

/theSurfer
Avatar billede thomas_b Nybegynder
27. februar 2006 - 12:22 #16
Er det noget at nogle af jer kan lære mig hvordan man bruger det til brugerniveau...?
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