diff --git a/cim-boot-server/libs/cim-server-sdk-netty-4.2.0.jar b/cim-boot-server/libs/cim-server-sdk-netty-4.2.0.jar index c82ad87..00168ec 100644 Binary files a/cim-boot-server/libs/cim-server-sdk-netty-4.2.0.jar and b/cim-boot-server/libs/cim-server-sdk-netty-4.2.0.jar differ diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TextMessageDecoder.java b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TextMessageDecoder.java index abc4b79..476fe47 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TextMessageDecoder.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TextMessageDecoder.java @@ -1,7 +1,8 @@ package com.farsunset.cim.coder.json; -import com.farsunset.cim.constant.CIMConstant; import com.farsunset.cim.constant.ChannelAttr; +import com.farsunset.cim.constant.DataType; +import com.farsunset.cim.exception.ReadInvalidTypeException; import com.farsunset.cim.model.Pong; import com.farsunset.cim.model.SentBody; import com.fasterxml.jackson.annotation.JsonInclude; @@ -35,14 +36,17 @@ public class TextMessageDecoder extends MessageToMessageDecoder { protected void encode(ChannelHandlerContext ctx, Transportable data, List out) throws JsonProcessingException { TransmitBody protocol = new TransmitBody(); - protocol.setType(data.getType()); + protocol.setType(data.getType().getValue()); protocol.setContent(getBody(data)); TextWebSocketFrame frame = new TextWebSocketFrame(OBJECT_MAPPER.writeValueAsString(protocol)); diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TransmitBody.java b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TransmitBody.java index 22c884a..2901cea 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TransmitBody.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/json/TransmitBody.java @@ -26,15 +26,15 @@ package com.farsunset.cim.coder.json; */ class TransmitBody { - private int type; + private byte type; private String content; - public int getType() { + public byte getType() { return type; } - public void setType(int type) { + public void setType(byte type) { this.type = type; } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageDecoder.java b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageDecoder.java index 9d14087..8b2241a 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageDecoder.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageDecoder.java @@ -23,6 +23,7 @@ package com.farsunset.cim.coder.protobuf; import com.farsunset.cim.constant.CIMConstant; import com.farsunset.cim.constant.ChannelAttr; +import com.farsunset.cim.constant.DataType; import com.farsunset.cim.exception.ReadInvalidTypeException; import com.farsunset.cim.model.Pong; import com.farsunset.cim.model.SentBody; @@ -77,11 +78,11 @@ public class AppMessageDecoder extends ByteToMessageDecoder { private Object mappingMessageObject(byte[] data, byte type) throws com.google.protobuf.InvalidProtocolBufferException { - if (CIMConstant.DATA_TYPE_PONG == type) { + if (DataType.PONG.getValue() == type) { return Pong.getInstance(); } - if (CIMConstant.DATA_TYPE_SENT == type) { + if (DataType.SENT.getValue() == type) { SentBodyProto.Model bodyProto = SentBodyProto.Model.parseFrom(data); SentBody body = new SentBody(); diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageEncoder.java b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageEncoder.java index c6fe8f4..b5d2519 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageEncoder.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/AppMessageEncoder.java @@ -35,7 +35,7 @@ public class AppMessageEncoder extends MessageToByteEncoder { @Override protected void encode(final ChannelHandlerContext ctx, final Transportable data, ByteBuf out){ byte[] body = data.getBody(); - byte[] header = createHeader(data.getType(), body.length); + byte[] header = createHeader(data.getType().getValue(), body.length); out.writeBytes(header); out.writeBytes(body); } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/WebMessageDecoder.java b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/WebMessageDecoder.java index 6b0fc6f..cb9ae01 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/WebMessageDecoder.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/coder/protobuf/WebMessageDecoder.java @@ -21,8 +21,8 @@ */ package com.farsunset.cim.coder.protobuf; -import com.farsunset.cim.constant.CIMConstant; import com.farsunset.cim.constant.ChannelAttr; +import com.farsunset.cim.constant.DataType; import com.farsunset.cim.exception.ReadInvalidTypeException; import com.farsunset.cim.model.Pong; import com.farsunset.cim.model.SentBody; @@ -48,12 +48,12 @@ public class WebMessageDecoder extends MessageToMessageDecoder { byte[] body = data.getBody(); ByteBufAllocator allocator = ctx.channel().config().getAllocator(); ByteBuf buffer = allocator.buffer(body.length + 1); - buffer.writeByte(data.getType()); + buffer.writeByte(data.getType().getValue()); buffer.writeBytes(body); out.add(new BinaryWebSocketFrame(buffer)); } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/constant/CIMConstant.java b/cim-server-sdk/src/main/java/com/farsunset/cim/constant/CIMConstant.java index ecb271b..a382c95 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/constant/CIMConstant.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/constant/CIMConstant.java @@ -31,12 +31,6 @@ public interface CIMConstant { */ byte DATA_HEADER_LENGTH = 3; - byte DATA_TYPE_PONG = 0; - byte DATA_TYPE_PING = 1; - byte DATA_TYPE_MESSAGE = 2; - byte DATA_TYPE_SENT = 3; - byte DATA_TYPE_REPLY = 4; - String CLIENT_CONNECT_CLOSED = "client_closed"; } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/constant/DataType.java b/cim-server-sdk/src/main/java/com/farsunset/cim/constant/DataType.java new file mode 100644 index 0000000..ae799f9 --- /dev/null +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/constant/DataType.java @@ -0,0 +1,63 @@ +/* + * Copyright 2013-2019 Xia Jun(3979434@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *************************************************************************************** + * * + * Website : http://www.farsunset.com * + * * + *************************************************************************************** + */ +package com.farsunset.cim.constant; + +/** + * 数据类型 + */ +public enum DataType { + + /** + * 客户端发送的的心跳响应 + */ + PONG (0), + + /** + * 服务端端发送的心跳响应 + */ + PING (1), + + /** + * 服务端端发送的消息体 + */ + MESSAGE (2), + + /** + * 客户端发送的请求体 + */ + SENT (3), + + /** + * 服务端端发送的响应体 + */ + REPLY (4); + + private final byte value; + + DataType(int value) { + this.value = (byte) value; + } + + public byte getValue() { + return value; + } +} diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Message.java b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Message.java index 31bf07d..d686e35 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Message.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Message.java @@ -21,7 +21,7 @@ */ package com.farsunset.cim.model; -import com.farsunset.cim.constant.CIMConstant; +import com.farsunset.cim.constant.DataType; import com.farsunset.cim.model.proto.MessageProto; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -221,7 +221,7 @@ public class Message implements Serializable, Transportable,Cloneable { @JsonIgnore @Override - public byte getType() { - return CIMConstant.DATA_TYPE_MESSAGE; + public DataType getType() { + return DataType.MESSAGE; } } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Ping.java b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Ping.java index 975fe6d..09025ab 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Ping.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Ping.java @@ -21,7 +21,8 @@ */ package com.farsunset.cim.model; -import com.farsunset.cim.constant.CIMConstant; +import com.farsunset.cim.constant.DataType; +import com.fasterxml.jackson.annotation.JsonIgnore; import java.io.Serializable; @@ -51,9 +52,9 @@ public class Ping implements Serializable, Transportable { return DATA.getBytes(); } + @JsonIgnore @Override - public byte getType() { - return CIMConstant.DATA_TYPE_PING; + public DataType getType() { + return DataType.PING; } - } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/model/ReplyBody.java b/cim-server-sdk/src/main/java/com/farsunset/cim/model/ReplyBody.java index 1c0601f..cc8a6f5 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/model/ReplyBody.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/model/ReplyBody.java @@ -21,7 +21,7 @@ */ package com.farsunset.cim.model; -import com.farsunset.cim.constant.CIMConstant; +import com.farsunset.cim.constant.DataType; import com.farsunset.cim.model.proto.ReplyBodyProto; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -145,8 +145,7 @@ public class ReplyBody implements Serializable, Transportable { @JsonIgnore @Override - public byte getType() { - return CIMConstant.DATA_TYPE_REPLY; + public DataType getType() { + return DataType.REPLY; } - } diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Transportable.java b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Transportable.java index 2debc9b..d39e249 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/model/Transportable.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/model/Transportable.java @@ -21,6 +21,8 @@ */ package com.farsunset.cim.model; +import com.farsunset.cim.constant.DataType; + /** * 需要向另一端发送的结构体 */ @@ -35,5 +37,5 @@ public interface Transportable { * 消息类型 * @return */ - byte getType(); + DataType getType(); }