Utforming av en modell for chatmeldinger
Opprett datamodeller for chatmeldinger, brukere og rom, og sørg for effektiv datautveksling.
Utforming av en modell for chatmeldinger er en gratis leksjon i WebSockets og sanntidssystemer med Spring på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i WebSockets og sanntidssystemer med Spring, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i WebSockets og sanntidssystemer med Spring inneholder totalt 4 leksjoner.
Hvorfor modellere chatdata?
Når De bygger en chatapplikasjon, er meldinger, brukere og rom sentrale komponenter. For å håndtere disse effektivt må vi utforme tydelige datamodeller.
Datamodeller definerer strukturen til informasjonen. Dette sikrer konsistens, gjør datalagring enklere og forenkler samhandlingen mellom ulike deler av applikasjonen.
Brukermodellen
Alle chatapplikasjoner har brukere! Brukermodellen definerer hvilken informasjon vi lagrer om hver deltaker.
Viktige egenskaper omfatter vanligvis:
- ID: En unik identifikator for hver bruker.
- Brukernavn: Et navn som er lett å lese for mennesker.
Vi bruker en enkel Java-klasse til å representere denne modellen.
Brukermodell: Kodeeksempel
Her er en grunnleggende Java-klasse for User-modellen vår. Legg merke til de private feltene med offentlige gettere og settere (POJO-mønsteret).
Prøv å kjøre eksempelet for å se hvordan et User-objekt opprettes!
public class Main {
public static class User {
private String id;
private String username;
public User(String id, String username) {
this.id = id;
this.username = username;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "User{id='" + id + "', username='" + username + "'}";
}
}
public static void main(String[] args) {
User user1 = new User("u101", "Alice");
System.out.println(user1);
}
}Modellen for chatterom
Chatterom organiserer samtaler. ChatRoom-modellen definerer hvordan vi strukturerer informasjon om disse rommene.
Viktige egenskaper omfatter ofte:
- ID: En unik identifikator for rommet.
- Navn: Navnet på rommet som vises (for eksempel «General Chat»).
- Medlemmer: En liste over bruker-ID-er som for øyeblikket er i rommet.
Chatterommodell: Kodeeksempel
Denne ChatRoom-klassen inneholder en ID, et navn og en måte å administrere medlemmene på (ved hjelp av List<String> for bruker-ID-er).
Kjør den for å se hvordan et rom opprettes og et medlem legges til.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static class ChatRoom {
private String id;
private String name;
private List<String> memberIds; // Stores User IDs
public ChatRoom(String id, String name) {
this.id = id;
this.name = name;
this.memberIds = new ArrayList<>();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getMemberIds() {
return memberIds;
}
public void addMember(String userId) {
if (!memberIds.contains(userId)) {
memberIds.add(userId);
}
}
@Override
public String toString() {
return "ChatRoom{id='" + id + "', name='" + name + "', members=" + memberIds + "}";
}
}
public static void main(String[] args) {
ChatRoom generalRoom = new ChatRoom("r201", "General Chat");
generalRoom.addMember("u101"); // Alice's ID
System.out.println(generalRoom);
}
}Modellen for chatmeldinger
Hjertet i en chatapplikasjon er selve meldingen! ChatMessage-modellen definerer hva en enkelt melding består av.
Viktige egenskaper omfatter:
- ID: Unik ID for meldingen.
- Avsender-ID: ID-en til brukeren som sendte meldingen.
- Rom-ID: ID-en til rommet der meldingen ble sendt.
- Innhold: Selve teksten i meldingen.
- Tidsstempel: Tidspunktet da meldingen ble sendt.
Chatmeldingsmodell: Kodeeksempel
Denne ChatMessage-klassen kombinerer elementer fra de tidligere modellene våre og legger til meldingsspesifikke detaljer.
Kjør den for å se hvordan en melding opprettes.
import java.time.LocalDateTime;
public class Main {
public static class ChatMessage {
private String id;
private String senderId;
private String roomId;
private String content;
private LocalDateTime timestamp;
public ChatMessage(String id, String senderId, String roomId, String content) {
this.id = id;
this.senderId = senderId;
this.roomId = roomId;
this.content = content;
this.timestamp = LocalDateTime.now(); // Set current time
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSenderId() {
return senderId;
}
public void setSenderId(String senderId) {
this.senderId = senderId;
}
public String getRoomId() {
return roomId;
}
public void setRoomId(String roomId) {
this.roomId = roomId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public LocalDateTime getTimestamp() {
return timestamp;
}
public void setTimestamp(LocalDateTime timestamp) {
this.timestamp = timestamp;
}
@Override
public String toString() {
return "ChatMessage{id='" + id + "', senderId='" + senderId + "', roomId='" + roomId + "', content='" + content + "', timestamp=" + timestamp + "}";
}
}
public static void main(String[] args) {
ChatMessage msg = new ChatMessage("m301", "u101", "r201", "Hello, everyone!");
System.out.println(msg);
}
}Relasjoner og effektivitet
Legg merke til hvordan modellene våre bruker ID-er (som senderId og roomId) i stedet for å bygge inn komplette User- eller ChatRoom-objekter direkte.
- Effektivitet: Det er mye mindre ressurskrevende å sende bare en ID enn et komplett objekt, særlig over et nettverk.
- Fleksibilitet: Hvis opplysningene om en bruker endres, trenger De ikke å oppdatere alle meldingene brukeren noen gang har sendt.
- Normalisering: Denne fremgangsmåten bidrar til å normalisere dataene og redusere redundans.
Disse ID-ene fungerer som nøkler som kobler sammen relaterte data.
Kontroll av modelldesign
Med utgangspunkt i modellene User, ChatRoom og ChatMessage: Hvilken egenskap er avgjørende for å koble en melding til rommet den tilhører?
Oppsummering: Sentrale chatmodeller
I denne leksjonen lærte De å utforme de grunnleggende datamodellene for en chatapplikasjon:
- Brukermodell: Lagrer brukeropplysninger (ID og brukernavn).
- ChatRoom-modell: Definerer egenskapene til rommet (ID, navn og medlems-ID-er).
- ChatMessage-modell: Inneholder meldingsopplysninger (ID, avsender-ID, rom-ID, innhold og tidsstempel).
Bruk av ID-er for relasjoner sikrer effektiv og fleksibel datautveksling. Deretter skal vi implementere offentlige chatterom!
Lær deg WebSockets og sanntidssystemer med Spring med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Utforming av en modell for chatmeldinger» gratis?
Ja – hele teksten i «Utforming av en modell for chatmeldinger» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av WebSockets og sanntidssystemer med Spring-kurset, kan du oppgradere til CoddyKit PRO. Kurset i WebSockets og sanntidssystemer med Spring inneholder totalt 4 leksjoner.
Hva lærer jeg i «Utforming av en modell for chatmeldinger»?
Opprett datamodeller for chatmeldinger, brukere og rom, og sørg for effektiv datautveksling. Du øver på WebSockets og sanntidssystemer med Spring med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med WebSockets og sanntidssystemer med Spring?
Ingen tidligere erfaring er nødvendig. WebSockets og sanntidssystemer med Spring på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Utforming av en modell for chatmeldinger»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne WebSockets og sanntidssystemer med Spring-leksjonen?
Ja. Alle WebSockets og sanntidssystemer med Spring-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Utforming av en modell for chatmeldinger
- Implementering av offentlige chatterom
- Private meldinger med STOMP
- Skriveindikatorer og tilstedeværelse på nett