19. februar 2006 - 22:22Der 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?
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.
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.
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.
Synes godt om
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?
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).
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...
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.
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 :)
"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....?
Er det noget at nogle af jer kan lære mig hvordan man bruger det til brugerniveau...?
Synes godt om
Ny brugerNybegynder
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.