Jedoch habe dabei nun folgendes kleines Problem. Ich habe eine Klasse für das JavaFX Fenster und eine weitere für den Client (Server lasse ich jetzt mal weg).
Nun soll wenn ein Button gedrückt wird in der GUI ein Objekt verschickt werden. Hierfür müsste lediglich die Methode writeAndFlush(*Das Objekt*) verschickt werden, diese Methode befindet sich in der Klasse Channel.
Jedoch hat jeder Client in Netty ein eigenes Channel Objekt, was bedeutet, dass man nur über das Channel Objekt des Clients, eine Nachricht schicken kann, wenn die writeAndFlush - Methode aus dem dazugehörigen Client aufgerufen wird.
So sollte es ungefähr aussehen. (EventA ist ein eigenes Event)
Jedoch komme ich nicht an den Channel, aus dem dazugehörigen Client dran um die Methode, wie im Code aufzurufen.
Hier ist nochmal der Code aus dem Client:
So wie die writeAndFlush Methode dort aufgerufen wurde würde es natürlich funktionieren. (Nur genau dieses Channel Objekt benötige ich in der setOnAction Methode)
Nun soll wenn ein Button gedrückt wird in der GUI ein Objekt verschickt werden. Hierfür müsste lediglich die Methode writeAndFlush(*Das Objekt*) verschickt werden, diese Methode befindet sich in der Klasse Channel.
Jedoch hat jeder Client in Netty ein eigenes Channel Objekt, was bedeutet, dass man nur über das Channel Objekt des Clients, eine Nachricht schicken kann, wenn die writeAndFlush - Methode aus dem dazugehörigen Client aufgerufen wird.
So sollte es ungefähr aussehen. (EventA ist ein eigenes Event)
Java:
loginButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
channel.writeAndFlush(new EventA("huhu")); //Dies soll der selbe Channel, wie aus der Client Klasse sein
}
});
Hier ist nochmal der Code aus dem Client:
So wie die writeAndFlush Methode dort aufgerufen wurde würde es natürlich funktionieren. (Nur genau dieses Channel Objekt benötige ich in der setOnAction Methode)
Java:
public ChatClient(){}
public void run() throws Exception{
EventLoopGroup group = new NioEventLoopGroup();
try{
Bootstrap bootstrap = new Bootstrap()
.group(group)
.channel(NioSocketChannel.class)
.handler(new ChatClientInitializer());
Channel channel = bootstrap.connect(host, port).sync().channel();
channel.writeAndFlush("Ein String Objekt");
}finally{
group.shutdownGracefully();
}