Commit 5c2586c6ad9281b0e2c9df95d4639dbba6e1dacb

Authored by dy
1 parent 2359b0ae
Exists in develop

fix: 服务器消息从数据库读取配置

src/main/java/com/example/mina/client/base/AbstractClient.java
1 1 package com.example.mina.client.base;
2 2  
3 3 import com.example.mina.client.entity.AbstractClientMessage;
  4 +import com.example.mina.client.entity.ServerMessage;
  5 +import com.example.mina.client.service.ServerService;
  6 +import com.example.mina.client.service.impl.ServerServiceImpl;
4 7 import com.example.mina.server.base.AbstractHardwareDataBuffer;
5 8 import org.apache.mina.core.future.ConnectFuture;
6 9 import org.apache.mina.core.service.IoConnector;
... ... @@ -27,17 +30,13 @@ public abstract class AbstractClient {
27 30  
28 31 protected IoSession ioSession;
29 32  
  33 + protected ServerService serverService = new ServerServiceImpl();
  34 +
30 35 protected AbstractClient() {
31   - initHardwareDataBuffer();
32   - initClientMessage();
33   - init(abstractClientMessage);
  36 + init();
34 37 }
35 38  
36   - protected abstract void init(AbstractClientMessage abstractClientMessage);
37   -
38   - protected abstract void initHardwareDataBuffer();
39   -
40   - protected abstract void initClientMessage();
  39 + protected abstract void init();
41 40  
42 41 public void start() {
43 42 //1、创建客户端IoService
... ... @@ -48,9 +47,10 @@ public abstract class AbstractClient {
48 47 connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(protocolCodecFactory));
49 48 //3、客户端IoHandler,发生消息
50 49 connector.setHandler(abstractVirtualBoxClientHandler);
  50 +
51 51 //连接服务端
52   - ConnectFuture connectFuture = connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.getClientMessage().getHost(),
53   - abstractVirtualBoxClientHandler.getClientMessage().getPort()));
  52 + ConnectFuture connectFuture = connector.connect(new InetSocketAddress(abstractClientMessage.getServerMessage().getHost(),
  53 + abstractClientMessage.getServerMessage().getPort()));
54 54 // 等待建立连接
55 55 connectFuture.awaitUninterruptibly();
56 56 // 获取连接会话
... ...
src/main/java/com/example/mina/client/box/aeroflex/AeroflexClient.java
1 1 package com.example.mina.client.box.aeroflex;
2 2  
3 3 import com.example.mina.client.base.AbstractClient;
4   -import com.example.mina.client.entity.AbstractClientMessage;
  4 +import com.example.mina.client.entity.AeroflexMessage;
  5 +import com.example.mina.client.entity.ServerMessage;
5 6 import com.example.mina.server.entity.AeroflexDataBuffer;
6 7  
7 8 /**
... ... @@ -11,19 +12,14 @@ import com.example.mina.server.entity.AeroflexDataBuffer;
11 12 public class AeroflexClient extends AbstractClient {
12 13  
13 14 @Override
14   - protected void init(AbstractClientMessage abstractClientMessage) {
15   - protocolCodecFactory = new AeroflexByteFactory();
16   - abstractVirtualBoxClientHandler = new AeroflexClientHandler(abstractClientMessage, hardwareDataBuffer);
17   - }
18   -
19   - @Override
20   - protected void initHardwareDataBuffer() {
  15 + protected void init() {
  16 + ServerMessage serverMessage = serverService.getServerService(this.getClass().getSimpleName());
21 17 hardwareDataBuffer = new AeroflexDataBuffer(10, 10);
22   - }
23   -
24   - @Override
25   - protected void initClientMessage() {
  18 + abstractClientMessage = new AeroflexMessage();
  19 + abstractClientMessage.setServerMessage(serverMessage);
26 20  
  21 + protocolCodecFactory = new AeroflexByteFactory();
  22 + abstractVirtualBoxClientHandler = new AeroflexClientHandler(abstractClientMessage, hardwareDataBuffer);
27 23 }
28 24  
29 25 /*@Override
... ...
src/main/java/com/example/mina/client/box/lte3000/Lte3000Client.java
1 1 package com.example.mina.client.box.lte3000;
2 2  
3 3 import com.example.mina.client.base.AbstractClient;
4   -import com.example.mina.client.entity.AbstractClientMessage;
5 4 import com.example.mina.client.entity.Command;
6 5 import com.example.mina.client.entity.Lte3000Message;
  6 +import com.example.mina.client.entity.ServerMessage;
7 7 import com.example.mina.server.entity.Lte3000DataBuffer;
8 8 import com.example.mina.server.util.Lte3000CommandHelper;
9 9  
... ... @@ -14,21 +14,12 @@ import com.example.mina.server.util.Lte3000CommandHelper;
14 14 public class Lte3000Client extends AbstractClient {
15 15  
16 16 @Override
17   - protected void init(AbstractClientMessage abstractClientMessage) {
18   - protocolCodecFactory = new Lte3000ByteFactory();
19   - abstractVirtualBoxClientHandler = new Lte3000ClientHandler(abstractClientMessage, hardwareDataBuffer);
20   - }
21   -
22   - @Override
23   - protected void initHardwareDataBuffer() {
  17 + protected void init() {
  18 + ServerMessage serverMessage = serverService.getServerService(this.getClass().getSimpleName());
24 19 hardwareDataBuffer = new Lte3000DataBuffer(32, 32, 30);
25   - }
26   -
27   - @Override
28   - protected void initClientMessage() {
29 20 abstractClientMessage = new Lte3000Message();
30   - abstractClientMessage.setHost("localhost");
31   - abstractClientMessage.setPort(9102);
  21 + abstractClientMessage.setServerMessage(serverMessage);
  22 +
32 23 for (int i = 0; i < this.hardwareDataBuffer.getMaxRow(); i++) {
33 24 abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetCross(i + 1)));
34 25 }
... ... @@ -38,16 +29,16 @@ public class Lte3000Client extends AbstractClient {
38 29 for (int j = 0; j < this.hardwareDataBuffer.getMaxCol(); j++) {
39 30 abstractClientMessage.getCommands().add(new Command("", Lte3000CommandHelper.genCommandGetAttn(j + 1)));
40 31 }
41   -
  32 + protocolCodecFactory = new Lte3000ByteFactory();
  33 + abstractVirtualBoxClientHandler = new Lte3000ClientHandler(abstractClientMessage, hardwareDataBuffer);
42 34 }
43 35  
44   -
45 36 public void setAttenuation(int row, int col, int atten) {
46 37 //ioSession.write("abcdfd".getBytes());
47 38 byte[] cmd;
48 39 if (row == 0) {
49 40 cmd = Lte3000CommandHelper.genCommandSetAttn(col, atten);
50   - }else{
  41 + } else {
51 42 cmd = Lte3000CommandHelper.genCommandSetCross(row, col);
52 43 }
53 44 ioSession.write(cmd);
... ...
src/main/java/com/example/mina/client/entity/AbstractClientMessage.java
1 1 package com.example.mina.client.entity;
2 2  
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
3 5 import lombok.Data;
  6 +import lombok.NoArgsConstructor;
4 7  
5 8 import java.util.ArrayList;
6 9 import java.util.List;
... ... @@ -12,9 +15,7 @@ import java.util.List;
12 15 @Data
13 16 public abstract class AbstractClientMessage {
14 17  
15   - protected String host;
16   -
17   - protected int port;
  18 + protected ServerMessage serverMessage;
18 19  
19 20 protected List<Command> commands = new ArrayList<>();
20 21 }
... ...
src/main/java/com/example/mina/client/entity/AeroflexMessage.java 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +package com.example.mina.client.entity;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * @author dy
  12 + * @date 2021/3/11
  13 + */
  14 +public class AeroflexMessage extends AbstractClientMessage{
  15 +}
... ...
src/main/java/com/example/mina/client/entity/Lte3000Message.java
1 1 package com.example.mina.client.entity;
2 2  
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
3 8 /**
4 9 * @author dy
5 10 * @date 2021/3/11
... ...
src/main/java/com/example/mina/client/entity/ServerMessage.java 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +package com.example.mina.client.entity;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
  8 +/**
  9 + * @author dy
  10 + * @date 2021/3/12
  11 + */
  12 +@Data
  13 +@NoArgsConstructor
  14 +@AllArgsConstructor
  15 +@Builder
  16 +public class ServerMessage {
  17 +
  18 + protected String host;
  19 +
  20 + protected int port;
  21 +}
... ...
src/main/java/com/example/mina/client/service/ServerService.java 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +package com.example.mina.client.service;
  2 +
  3 +import com.example.mina.client.entity.AbstractClientMessage;
  4 +import com.example.mina.client.entity.ServerMessage;
  5 +
  6 +/**
  7 + * @author dy
  8 + * @date 2021/3/12
  9 + */
  10 +public interface ServerService {
  11 + ServerMessage getServerService(String serverName);
  12 +}
... ...
src/main/java/com/example/mina/client/service/impl/ServerServiceImpl.java 0 → 100644
... ... @@ -0,0 +1,22 @@
  1 +package com.example.mina.client.service.impl;
  2 +
  3 +import com.example.mina.client.entity.ServerMessage;
  4 +import com.example.mina.client.service.ServerService;
  5 +
  6 +/**
  7 + * @author dy
  8 + * @date 2021/3/12
  9 + */
  10 +public class ServerServiceImpl implements ServerService {
  11 +
  12 + @Override
  13 + public ServerMessage getServerService(String serverName) {
  14 + // 根据服务器名称获取数据库ip,port
  15 + // todo
  16 + ServerMessage serverMessage = ServerMessage.builder()
  17 + .host("localhost")
  18 + .port(9102)
  19 + .build();
  20 + return serverMessage;
  21 + }
  22 +}
... ...