netty client 2023年2月27日14:45:16

master
zhangmeng 2023-02-27 14:46:21 +08:00
parent d21890a5f8
commit 8d8b61fbaf
1 changed files with 39 additions and 51 deletions

View File

@ -1,36 +1,20 @@
package com.zhangmeng.tools.controller; package com.zhangmeng.tools.controller;
import com.zhangmeng.tools.netty.Message;
import com.zhangmeng.tools.netty.NettyClient; import com.zhangmeng.tools.netty.NettyClient;
import com.zhangmeng.tools.utils.AlertUtils; import com.zhangmeng.tools.utils.AlertUtils;
import com.zhangmeng.tools.utils.ExecutorUtils;
import com.zhangmeng.tools.utils.Multithreading;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.string.StringEncoder;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener; import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.control.cell.TextFieldListCell;
import javafx.scene.layout.HBox; import javafx.scene.layout.HBox;
import javafx.util.Callback; import javafx.util.Callback;
import javafx.util.StringConverter; import javafx.util.StringConverter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* @author : * @author :
@ -124,12 +108,15 @@ public class NettyClientController {
@FXML @FXML
public void initialize() { public void initialize() {
message_result_list.addListener((ListChangeListener<String>) c -> { message_result_list.addListener((ListChangeListener<String>) c -> {
if (c.wasAdded()) {
StringBuilder stringBuilder = new StringBuilder(); while (c.next()) {
for (String s : message_result_list) { if (c.wasAdded()) {
stringBuilder.append(s); StringBuilder stringBuilder = new StringBuilder();
for (String s : message_result_list) {
stringBuilder.append(s);
}
receive(stringBuilder.toString());
} }
receive(stringBuilder.toString());
} }
}); });
@ -186,34 +173,35 @@ public class NettyClientController {
String msg = send_msg.getText(); String msg = send_msg.getText();
Multithreading.execute(() -> { // Multithreading.execute(() -> {
if (nettyClient == null){ // if (nettyClient == null){
this.nettyClient = NettyClient.getInstance(); // this.nettyClient = NettyClient.getInstance();
this.nettyClient.setPort(socket_port); // this.nettyClient.setPort(socket_port);
this.nettyClient.setIp(socket_address); // this.nettyClient.setIp(socket_address);
StringBuilder params = new StringBuilder(); // StringBuilder params = new StringBuilder();
for (Data data : list) { // for (Data data : list) {
if (params.toString().equals("")){ // if (params.toString().equals("")){
params.append(data.key).append("=").append(data.value); // params.append(data.key).append("=").append(data.value);
}else { // }else {
params.append("&").append(data.key).append("=").append(data.value); // params.append("&").append(data.key).append("=").append(data.value);
} // }
} // }
this.nettyClient.setParams(params.toString()); // this.nettyClient.setParams(params.toString());
log.info("params:{}",params.toString()); // log.info("params:{}",params.toString());
} // }
//
// 让客户端后台懒启动。避免先于服务端启动而引发异常 // // 让客户端后台懒启动。避免先于服务端启动而引发异常
if (!isStarted) { // if (!isStarted) {
this.nettyClient.start(); // this.nettyClient.start();
isStarted = true; // isStarted = true;
} // }
//
Platform.runLater(() -> { // Platform.runLater(() -> {
this.nettyClient.send(msg); // this.nettyClient.send(msg);
}); // });
add_message(msg); // add_message(msg);
}); // });
add_message(msg);
this.send_msg.requestFocus(); this.send_msg.requestFocus();
this.send_msg.clear(); // TODO this.send_msg.clear(); // TODO
@ -223,7 +211,7 @@ public class NettyClientController {
public void receive(String msg) { public void receive(String msg) {
Platform.runLater(() -> { Platform.runLater(() -> {
this.result_show.appendText(msg); this.result_show.setText(msg);
}); });
} }