Skip to content

Commit 77ef8ad

Browse files
committed
project_version=2.2.8.16
* 将PulseClientMessageHandler 无delayTime参数默认值从0设置为500 * 修整了部分代码格式,移除掉部分测试时使用的main方法
1 parent 3b86f3e commit 77ef8ad

File tree

11 files changed

+33
-68
lines changed

11 files changed

+33
-68
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11

22
project_group ='com.r3944realms.dg_lab'
3-
project_version=2.2.8.15
3+
project_version=2.2.8.16

src/main/java/com/r3944realms/dg_lab/api/handler/ServerOperation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.r3944realms.dg_lab.api.handler;
22

33
import com.r3944realms.dg_lab.websocket.message.PowerBoxMessage;
4+
import org.jetbrains.annotations.Nullable;
45

56
/**
67
* The interface Server operation.
@@ -107,7 +108,7 @@ public interface ServerOperation extends IOperation {
107108
* @param pulseMessage 波形消息
108109
*/
109110
default void PulseClientMessageHandler(final PowerBoxMessage clearMessage, final PowerBoxMessage pulseMessage) {
110-
PulseClientMessageHandler(clearMessage, 0 , pulseMessage);
111+
PulseClientMessageHandler(clearMessage, 500, pulseMessage);
111112
}
112113

113114
/**
@@ -117,7 +118,7 @@ default void PulseClientMessageHandler(final PowerBoxMessage clearMessage, final
117118
* @param delayTime 延迟时间
118119
* @param pulseMessage 波形消息
119120
*/
120-
void PulseClientMessageHandler(final PowerBoxMessage clearMessage,final int delayTime, final PowerBoxMessage pulseMessage);
121+
void PulseClientMessageHandler(@Nullable final PowerBoxMessage clearMessage, final int delayTime, final PowerBoxMessage pulseMessage);
121122

122123
/**
123124
* 连接断开消息处理

src/main/java/com/r3944realms/dg_lab/api/msg/IPowerBoxMsg.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public PowerBoxData toPowerBoxData(String clientUUID, String targetUUID) {
113113
*/
114114
public static StrengthChange read(PowerBoxMessage msg) throws NoMatchDataTypeException {
115115
if (msg.commandType != PowerBoxDataType.STRENGTH) throw new NoMatchDataTypeException();
116-
PowerBoxData payload = (PowerBoxData)msg.getPayload();
116+
PowerBoxData payload = msg.getPayload();
117117
Object[] argsArrayByPointing = payload.getArgsArrayByPointing(msg.commandType);
118118
if (argsArrayByPointing.length != 3) throw new NoMatchDataTypeException();
119119
return new StrengthChange(Channel.getChannel((Integer) argsArrayByPointing[0]), ChangePolicy.getChangePolicy((Integer) argsArrayByPointing[1]), (Integer) argsArrayByPointing[2]);
@@ -139,7 +139,7 @@ public PowerBoxData toPowerBoxData(String clientUUID, String targetUUID) {
139139
*/
140140
public static StrengthInfo read(PowerBoxMessage msg) throws NoMatchDataTypeException {
141141
if (msg.commandType != PowerBoxDataType.STRENGTH) throw new NoMatchDataTypeException();
142-
PowerBoxData payload = (PowerBoxData)msg.getPayload();
142+
PowerBoxData payload = msg.getPayload();
143143
Object[] argsArrayByPointing = payload.getArgsArrayByPointing(msg.commandType);
144144
if (argsArrayByPointing.length != 4) throw new NoMatchDataTypeException();
145145
return new StrengthInfo((Integer) argsArrayByPointing[0], (Integer) argsArrayByPointing[1], (Integer) argsArrayByPointing[2], (Integer) argsArrayByPointing[3]);
@@ -165,7 +165,7 @@ public PowerBoxData toPowerBoxData(String clientUUID, String targetUUID) {
165165
*/
166166
public static Clear read(PowerBoxMessage msg) throws NoMatchDataTypeException {
167167
if (msg.commandType != PowerBoxDataType.CLEAR) throw new NoMatchDataTypeException();
168-
PowerBoxData payload = (PowerBoxData)msg.getPayload();
168+
PowerBoxData payload = msg.getPayload();
169169
Object[] argsArrayByPointing = payload.getArgsArrayByPointing(msg.commandType);
170170
return new Clear(Channel.getChannel((Integer) argsArrayByPointing[0]));
171171
}
@@ -190,7 +190,7 @@ public PowerBoxData toPowerBoxData(String clientUUID, String targetUUID) {
190190
*/
191191
public static Feedback read(PowerBoxMessage msg) throws NoMatchDataTypeException {
192192
if (msg.commandType != PowerBoxDataType.FEEDBACK) throw new NoMatchDataTypeException();
193-
PowerBoxData payload = (PowerBoxData)msg.getPayload();
193+
PowerBoxData payload = msg.getPayload();
194194
Object[] argsArrayByPointing = payload.getArgsArrayByPointing(msg.commandType);
195195
return new Feedback((Integer) argsArrayByPointing[0]);
196196
}
@@ -245,7 +245,7 @@ public PowerBoxDataWithSingleAttachment toPowerBoxData(String clientUUID, String
245245
* @throws NoMatchDataTypeException the no match data type exception
246246
*/
247247
public static Pulse read(PowerBoxMessage msg) throws NoMatchDataTypeException {
248-
PowerBoxData payload = (PowerBoxData)msg.getPayload();
248+
PowerBoxData payload = msg.getPayload();
249249
PowerBoxDataType commandType = payload.getCommandType(true);
250250
if (commandType != PowerBoxDataType.PULSE) throw new NoMatchDataTypeException();
251251
Object[] argsArrayByPointing = payload.getArgsArrayByPointing(commandType);//10 0 1 ~ 9

src/main/java/com/r3944realms/dg_lab/utils/enums/Status.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,4 @@ public enum Status {
2828
* Error status.
2929
*/
3030
ERROR
31-
;
3231
}

src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketClient.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121

22-
import java.net.*;
23-
import java.util.Enumeration;
22+
import java.net.InetAddress;
23+
import java.net.URI;
24+
import java.net.UnknownHostException;
2425
import java.util.concurrent.CompletableFuture;
2526

2627
/**
@@ -196,7 +197,7 @@ protected final void initThread() {
196197
ClientBootstrap.channel(NioSocketChannel.class);
197198
ClientBootstrap.handler(new ChannelInitializer<NioSocketChannel>() {
198199
@Override
199-
protected void initChannel(NioSocketChannel ch) throws Exception {
200+
protected void initChannel(NioSocketChannel ch) {
200201
ChannelPipeline pipeline = ch.pipeline();
201202
pipeline.addLast(DgLab.LOGGING_HANDLER,
202203
new HttpClientCodec(),

src/main/java/com/r3944realms/dg_lab/websocket/handler/AbstractDgLabPowerBoxHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ public void handlerRemoved(ChannelHandlerContext session) throws Exception {
4242
}
4343

4444
@Override
45-
public void exceptionCaught(ChannelHandlerContext session, Throwable cause) throws Exception {
45+
public void exceptionCaught(ChannelHandlerContext session, Throwable cause) {
4646
contextWrapper.ErrorHandler(session, cause);
4747
}
4848

4949
@Override
50-
protected void channelRead0(ChannelHandlerContext session, TextWebSocketFrame msg) throws Exception {
50+
protected void channelRead0(ChannelHandlerContext session, TextWebSocketFrame msg) {
5151
contextWrapper.ReadMsgHandle(session, msg);
5252
}
5353

src/main/java/com/r3944realms/dg_lab/websocket/handler/server/HttpRequestHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class HttpRequestHandler extends SimpleChannelInboundHandler<FullHttpRequest> {
1515
private static final Logger logger = LoggerFactory.getLogger(HttpRequestHandler.class);
1616
@Override
17-
protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception {
17+
protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) {
1818
// 读取原始请求的 URI
1919
String requestUri = request.uri();
2020
// 修改 URI,去掉路径部分,只保留 "/"
@@ -59,7 +59,7 @@ private void sendForbiddenResponse(ChannelHandlerContext ctx, FullHttpRequest re
5959
}
6060

6161
@Override
62-
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
62+
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
6363
logger.error(cause.getMessage(), cause);
6464
ctx.close();
6565
}

src/main/java/com/r3944realms/dg_lab/websocket/handler/server/ServerDLPBHandlerContextWrapper.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ private void DataTypeHandler(ChannelHandlerContext session, PowerBoxDataType dat
319319
PowerBoxMessage pulseMsg = PowerBoxMessage.createPowerBoxMessage("msg", clientId, targetId, messageCommand, role, new WebSocketApplicationRole("Ap" + targetId));
320320
if (data instanceof PowerBoxDataWithSingleAttachment dataWithSingleAttachment) {
321321
Integer timer = dataWithSingleAttachment.getTimer();
322-
int sendTime = dataWithSingleAttachment.isValid() ? timer != null ? timer : PunishmentTime() : PunishmentTime();
322+
int sendTime = dataWithSingleAttachment.isValid() ? (timer != null ? timer : PunishmentTime()) : PunishmentTime();
323323

324324
Integer totalSends = PunishmentTime() * sendTime;
325325
Integer timesSpace = 1000 / PunishmentTime();
@@ -328,14 +328,14 @@ private void DataTypeHandler(ChannelHandlerContext session, PowerBoxDataType dat
328328
if (ClientTimers().containsKey(clientId)) {
329329
//接收消息未工作完毕,清除旧计时器并发送清除App队列消息
330330
PowerBoxMessage clearAndUpdateMsg = PowerBoxMessage.createPowerBoxMessage("clientMsg", clientId, targetId, "over-previous-value", role, new WebSocketClientRole("Cl" + clientId));
331-
TryCatch(n -> ((ServerOperation)operation).PulseClientMessageHandler(clearAndUpdateMsg, pulseMsg));
332331
sendMessageOrData(this, clientId, clearAndUpdateMsg);
333332
Timer timerId = ClientTimers().get(clientId + "-" + channel);
334333
clearInterval(clientId, timerId, channel);
335334
ClientTimers().remove(clientId + "-" + channel);
336335
//发送 App波形队列清除指令
337-
String commandMsg = "clear-"+(channel == 'A' ? "1": "2") ;//非A即B(
336+
String commandMsg = "clear-" + (channel == 'A' ? "1": "2") ;//非A即B(
338337
PowerBoxMessage clear = PowerBoxMessage.createPowerBoxMessage("msg", clientId, targetId, commandMsg, role, new WebSocketApplicationRole("Ap" + targetId));
338+
TryCatch(n -> ((ServerOperation)operation).PulseClientMessageHandler(clear, totalSends, pulseMsg));
339339
sendMessageData(this, app, clear);
340340
Promise<Void> promise = session.newPromise();
341341
session.executor().schedule(() -> {
@@ -346,17 +346,20 @@ private void DataTypeHandler(ChannelHandlerContext session, PowerBoxDataType dat
346346
delaySendMsg(clientId, session, app, pulseMsg, totalSends, timesSpace, channel);
347347
} else logger.error("WTF?(╯‵□′)╯︵┻━┻");
348348
});
349-
} else delaySendMsg(clientId, session, app, pulseMsg, totalSends, timesSpace, channel);//如果不存在未发送玩的消息 直接发送
349+
} else {
350+
TryCatch(n -> ((ServerOperation)operation).PulseClientMessageHandler(null, totalSends, pulseMsg));
351+
delaySendMsg(clientId, session, app, pulseMsg, totalSends, timesSpace, channel);
352+
}//如果不存在未发送玩的消息 直接发送
350353
} else {
351354
PowerBoxMessage unsupportedMsg = PowerBoxMessage.createPowerBoxMessage("error", clientId, targetId, PowerBoxStatusCode.UNSUPPORTED_OPERATION, role, new WebSocketClientRole("Cl" + clientId));
352355
TryCatch(n -> ((ServerOperation)operation).ErrorMessageHandler(unsupportedMsg));
353356
sendMessageText(this , session, unsupportedMsg);//发送给客户端
354357
}
355358
} else {
356359
logger.debug("未找到匹配的客户端,clientId={}", clientId);
357-
PowerBoxMessage not_found = PowerBoxMessage.createPowerBoxMessage("msg", clientId, targetId, PowerBoxStatusCode.NOT_FOUND_BECAUSE_OF_OFFLINE, role, new WebSocketClientRole("Cl" + clientId));
358-
TryCatch(n -> ((ServerOperation)operation).ErrorMessageHandler(not_found));
359-
sendMessageText(this, session, not_found);
360+
PowerBoxMessage notFound = PowerBoxMessage.createPowerBoxMessage("msg", clientId, targetId, PowerBoxStatusCode.NOT_FOUND_BECAUSE_OF_OFFLINE, role, new WebSocketClientRole("Cl" + clientId));
361+
TryCatch(n -> ((ServerOperation)operation).ErrorMessageHandler(notFound));
362+
sendMessageText(this, session, notFound);
360363
}
361364
}
362365
default -> {
@@ -494,9 +497,7 @@ public void delaySendMsg(String clientId, ChannelHandlerContext client, ChannelH
494497
totalSends--;
495498
if (totalSends> 0 ) {
496499
Timer timer = new Timer();
497-
DgLabTimerTask task = new DgLabTimerTask(client, target, message, totalSends, k -> {
498-
clearInterval(clientId, timer, channel);
499-
}, channel);
500+
DgLabTimerTask task = new DgLabTimerTask(client, target, message, totalSends, k -> clearInterval(clientId, timer, channel), channel);
500501
timer.scheduleAtFixedRate(task, 0, timeSpace.longValue());//周期触发
501502
ClientTimers().put(clientId + "-" + channel, timer);//存储对应的·clientId与频道
502503
}

src/main/java/com/r3944realms/dg_lab/websocket/message/PowerBoxMessage.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
package com.r3944realms.dg_lab.websocket.message;
22

33
import com.google.gson.JsonSyntaxException;
4-
import com.r3944realms.dg_lab.utils.stringUtils.StringHandlerUtil;
54
import com.r3944realms.dg_lab.websocket.message.data.PowerBoxData;
65
import com.r3944realms.dg_lab.websocket.message.data.PowerBoxDataWithAttachment;
76
import com.r3944realms.dg_lab.websocket.message.data.PowerBoxDataWithSingleAttachment;
87
import com.r3944realms.dg_lab.websocket.message.data.type.PowerBoxDataType;
98
import com.r3944realms.dg_lab.websocket.message.data.type.PowerBoxStatusCode;
109
import com.r3944realms.dg_lab.websocket.message.role.PlaceholderRole;
1110
import com.r3944realms.dg_lab.websocket.message.role.Role;
12-
import com.r3944realms.dg_lab.websocket.message.role.WebSocketClientRole;
13-
import com.r3944realms.dg_lab.websocket.message.role.WebSocketServerRole;
1411

1512
/**
1613
* The type Power box message.
@@ -213,33 +210,4 @@ public PowerBoxDataWithSingleAttachment getPayloadWithSingleAttachment(String js
213210
return gson.fromJson(json, PowerBoxDataWithSingleAttachment.class);
214211
}
215212

216-
/**
217-
* The entry point of application.
218-
*
219-
* @param args the input arguments
220-
*/
221-
@SuppressWarnings("all")
222-
//json数据的字符最大长度为1950,若超过该长度,APP收到数据将会丢弃该消息 842 (最大100组波形波频数据) - 64 ,足矣
223-
public static void main(String[] args) {
224-
PowerBoxData data = PowerBoxData.createPowerBoxData("msg", "xxxx-xxxxxxxxx-xxxxx-xxxxx-xx", "xxxx-xxxxxxxxx-xxxxx-xxxxx-xx", "pulse-A:"+ StringHandlerUtil.reformWaveDataList(new String[]{"ff00ff00","00ff00ff","15002233"}));
225-
PowerBoxDataWithAttachment dataWithAttachment = PowerBoxDataWithAttachment.attach(data, 0, 0);
226-
MessageDirection<WebSocketClientRole, WebSocketServerRole> mD = new MessageDirection<>(new WebSocketClientRole("uuid"), new WebSocketServerRole("uuid"));
227-
PowerBoxMessage msg = new PowerBoxMessage(dataWithAttachment, mD),ms = null;
228-
String message = msg.getMsgJson();
229-
PowerBoxData powerBoxData = null;
230-
String msgData = msg.getDataJson();
231-
try {
232-
ms = gson.fromJson(msgData, PowerBoxMessage.class);
233-
if(ms.payload == null || ms.direction == null || ms.commandType == null) throw new NullPointerException("invalid message");
234-
}catch(Exception e) {
235-
e.printStackTrace();
236-
ms = null;
237-
powerBoxData = gson.fromJson(msgData ,PowerBoxData.class);
238-
}
239-
if(ms == null) {
240-
System.out.println(null != powerBoxData ? powerBoxData.getType() : "No PowerBoxData");
241-
} else {
242-
System.out.println(ms.getMsgJson());
243-
}
244-
}
245213
}

src/main/java/com/r3944realms/dg_lab/websocket/message/data/PowerBoxData.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.r3944realms.dg_lab.websocket.message.data;
22

3-
import com.r3944realms.dg_lab.utils.stringUtils.StringHandlerUtil;
43
import com.r3944realms.dg_lab.websocket.message.data.type.PowerBoxDataType;
54
import com.r3944realms.dg_lab.websocket.message.data.type.PowerBoxStatusCode;
65

@@ -360,13 +359,4 @@ String[] getWaveformDataList(String msg) {
360359
return result;
361360
}
362361

363-
/**
364-
* The entry point of application.
365-
*
366-
* @param args the input arguments
367-
*/
368-
public static void main(String[] args) {
369-
String[] strings = new String[]{"ff00ff00", "00ff00ff", "ff00ff00", "12345678"};
370-
System.out.println(StringHandlerUtil.reformWaveDataList(strings));
371-
}
372362
}

0 commit comments

Comments
 (0)