richtiger Chat

This commit is contained in:
ahren 2023-12-13 14:52:58 +01:00
parent de596fad8c
commit b0e1bd16f3
4 changed files with 14 additions and 12 deletions

View File

@ -42,7 +42,7 @@ public class CommandSend implements CommandInterface
public void execute() public void execute()
{ {
if(transmitterInterface != null && !eingabeFeld.getText().isEmpty()){ if(transmitterInterface != null && !eingabeFeld.getText().isEmpty()){
transmitterInterface.send(new Nachricht("Du: " + eingabeFeld.getText())); transmitterInterface.send(eingabeFeld.getText());
eingabeFeld.setText(""); eingabeFeld.setText("");
} }
} }

View File

@ -30,7 +30,7 @@ public class ReceiveAdapter implements Subscriber<Nachricht> {
@Override @Override
public void onNext(Nachricht item) { public void onNext(Nachricht item) {
view.getTxtChat().append("\n" + item.getNachricht()); view.getTxtChat().append(item.getNachricht());
this.subscription.request(1); this.subscription.request(1);
} }

View File

@ -38,6 +38,7 @@ public abstract class Transmitter implements Runnable, Subscriber<String>, Trans
protected PrintWriter writer; protected PrintWriter writer;
private Nachricht nachricht; private Nachricht nachricht;
private String txtNachricht;
private boolean laufend; private boolean laufend;
private SubmissionPublisher<Nachricht> textPublisher; private SubmissionPublisher<Nachricht> textPublisher;
private ExecutorService eService; private ExecutorService eService;
@ -53,6 +54,7 @@ public abstract class Transmitter implements Runnable, Subscriber<String>, Trans
textPublisher = new SubmissionPublisher<>(); textPublisher = new SubmissionPublisher<>();
this.view = view; this.view = view;
addWertSubscription(receiveAdapter); addWertSubscription(receiveAdapter);
nachricht = new Nachricht("");
} }
public void addWertSubscription(Subscriber<Nachricht> subscriber) public void addWertSubscription(Subscriber<Nachricht> subscriber)
@ -84,20 +86,20 @@ public abstract class Transmitter implements Runnable, Subscriber<String>, Trans
} }
} }
public void send(Nachricht nachricht){ public void send(String txtNachricht){
writer.println(nachricht.getNachricht()); writer.println(txtNachricht);
writer.flush(); writer.flush();
lg.info("Nachricht gesendet"); lg.info("Nachricht gesendet");
nachricht.setNachricht("\nDu: " + txtNachricht);
textPublisher.submit(nachricht); textPublisher.submit(nachricht);
} }
public Nachricht receive(){ public Nachricht receive(){
Nachricht nachricht = new Nachricht("");
try { try {
String txtNachricht = reader.readLine(); txtNachricht = reader.readLine();
if(!txtNachricht.isEmpty()){ if(!txtNachricht.isEmpty()){
lg.info("Nachricht erhalten"); lg.info("Nachricht erhalten");
nachricht.setNachricht("Er / Sie: " + txtNachricht); nachricht.setNachricht("\nEr / Sie: " + txtNachricht);
return nachricht; return nachricht;
} }
@ -118,9 +120,9 @@ public abstract class Transmitter implements Runnable, Subscriber<String>, Trans
while (true) { while (true) {
lg.info("Warte auf Nachricht"); lg.info("Warte auf Nachricht");
if(laufend) { if(laufend) {
Nachricht eingehendeNachricht = receive(); nachricht = receive();
if(!eingehendeNachricht.getNachricht().isEmpty()){ if(!nachricht.getNachricht().isEmpty()){
textPublisher.submit(eingehendeNachricht); textPublisher.submit(nachricht);
} }
} }
else{ else{

View File

@ -11,7 +11,7 @@ import ChatProgramm.model.Nachricht;
*/ */
public interface TransmitterInterface public interface TransmitterInterface
{ {
public void send(Nachricht nachricht); public void send(String txtNachricht);
public Nachricht receive(); public Nachricht receive();
} }