webForumDet fria alternativet

Java Chat ->nybörjare

2 svar · 400 visningar · startad av Type

TypeMedlem sedan mars 20021 239 inlägg
#1

Hej alla!
Jag har snart läst Java 5p på universitetsnivå.

Nu har jag kommit på att jag vill göra en javachat, men har ingen aning om hur jag ska göra... tänkte att webforum kan ge mig lite tips o sparka in mig på rätt spår.

tidigare har jag gjort typ en miniräknare, o håller på med en sökning i en biblioteksdatabas.. inget svårare... Har gått igenom RMI som jag märkt att folk pratat om här när det gäller chat, men tycker att det verkar ruskigt jobbigt...

Hur är det tänkt att man ska spara informationen med inloggade användare och chat-texten?? Om det ska göras i databas, hur visar man det då?

Finns det någon som kan ge mig ett tips på hur jag ska börja, kanske skriva lite pseudokod så jag ungefär vet hur det ligger till...

MVH Erik

LimeMedlem sedan sep. 2001961 inlägg
#2

Jo, man kan göra en chat med RMI men det finns enklare metoder. I princip handlar det om att ett antal clienter vill prata med varandra. Då finns det två principer, broadcast och peer-to-peer. Broadcast betyder att man skriker rakt ut och så får den som vill lyssna. Peer-to-peer betyder att man vet vem man pratar med.

Enklast är broadcast men gäller ju att klienterna vet var man står och skriver. Alltså behöver man ha en server som står och kör på en känd dator med en känd adress. Därmed har vi slagit fast att det är en client-server-lösning vi vill göra.

Då gäller det att tänka efter vad det är vi gör. Vi vill prata med servern. Det gör man enklast genom att skapa en socket mot servern. (java.net.Socket). Servern måste då lyssna efter sådana anrop (java.net.ServerSocket). Sedan lagrar serven denna socketuppkoppling på lämpligt sätt. Ett bra tips är att man skickar ett namn (alias) som första meddelande. Denna skall ligga i en egen tråd.

När man sedan skickar ett meddelande till servern skall denna skicka ut detta till alla som är registrerade i servern. Denna funktion behöver också ligga i en egen tråd.

Man kan tänka till och skriva ett protokoll i t.ex. XML som gör att man kan göra lite mer. Exempelvis så använder vi följande XML-kod för att göra registrera namnet i servern.

<CHAT>
       <NAME>Lime</NAME>
</CHAT>

och för att skicka ett meddelande.

<CHAT>
       <MESSAGE>
          Det här är ett meddelande som går till alla.
       </MESSAGE>
      <MESSAGE to="Lemmon">
          Det här är ett meddelande som går bara till användare Lemmon.
       </MESSAGE>
</CHAT>

Sedan finns det meddelanden för att säga att "nu kom den och den upp" och "nu gick användare si och så". Men dessa får du klura ut själv... ;-)

Så nu är det bara att koda...

TypeMedlem sedan mars 20021 239 inlägg
#3

Tack så mycket Lime!
Detta är precis vad jag behöver... Lite frågor dock.
Måste man skicka ut texterna till alla som är registrerade?
Går det inte att spara i en databas på servern som alla som vill får läsa ur...

O hur ska man spara alla utskickade texter i typ TextArean (själva textfönstret där chattandet är...)

Jag är inte riktigt med på xml, vart ska det ligga o hur ska man göra det?

Ska varje användare ha en egen xml sida? asså använda den typ som man använder en vanlig hemsida?

Hur fungerar xml i JAVA?

Tack än en gång för genomgången :)

130 ms totalt · 3 externa anrop · v20260731065814-full.3292ce1b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)