Commit 5c2586c6ad9281b0e2c9df95d4639dbba6e1dacb
1 parent
2359b0ae
Exists in
develop
fix: 服务器消息从数据库读取配置
Showing
9 changed files
with
105 additions
and
42 deletions
Show diff stats
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
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 | +} | ... | ... |