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...