Skip to content

Commit 4f70e13

Browse files
发布v2.3.27
修复dubbo代理,在调用超时后,channel无法自动重连的bug
1 parent bbdb471 commit 4f70e13

File tree

9 files changed

+74
-68
lines changed

9 files changed

+74
-68
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ github地址 : https://github.com/wangzihaogithub/spring-boot-protocol
152152
<dependency>
153153
<groupId>com.github.wangzihaogithub</groupId>
154154
<artifactId>spring-boot-protocol</artifactId>
155-
<version>2.3.26</version>
155+
<version>2.3.27</version>
156156
</dependency>
157157
```
158158

@@ -164,7 +164,7 @@ github地址 : https://github.com/wangzihaogithub/spring-boot-protocol
164164
<dependency>
165165
<groupId>com.github.wangzihaogithub</groupId>
166166
<artifactId>netty-servlet</artifactId>
167-
<version>2.3.26</version>
167+
<version>2.3.27</version>
168168
</dependency>
169169
```
170170

@@ -320,7 +320,7 @@ github地址 : https://github.com/wangzihaogithub/spring-boot-protocol
320320
<dependency>
321321
<groupId>com.github.wangzihaogithub</groupId>
322322
<artifactId>spring-boot-protocol</artifactId>
323-
<version>2.3.26</version>
323+
<version>2.3.27</version>
324324
</dependency>
325325

326326
2.编写代码
@@ -400,7 +400,7 @@ github地址 : https://github.com/wangzihaogithub/spring-boot-protocol
400400
<dependency>
401401
<groupId>com.github.wangzihaogithub</groupId>
402402
<artifactId>spring-boot-protocol</artifactId>
403-
<version>2.3.26</version>
403+
<version>2.3.27</version>
404404
</dependency>
405405

406406
2.编写代码
@@ -489,7 +489,7 @@ github地址 : https://github.com/wangzihaogithub/spring-boot-protocol
489489
<dependency>
490490
<groupId>com.github.wangzihaogithub</groupId>
491491
<artifactId>spring-boot-protocol</artifactId>
492-
<version>2.3.26</version>
492+
<version>2.3.27</version>
493493
</dependency>
494494
495495
2.编写启动类

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.github.wangzihaogithub</groupId>
66
<artifactId>spring-boot-protocol</artifactId>
7-
<version>2.3.26</version>
7+
<version>2.3.27</version>
88
<packaging>jar</packaging>
99

1010
<name>Spring Boot Protocol</name>
@@ -49,7 +49,7 @@
4949
<connection>scm:git:https://github.com/wangzihaogithub/spring-boot-protocol.git</connection>
5050
<developerConnection>scm:git:[email protected]:wangzihaogithub/spring-boot-protocol.git</developerConnection>
5151
<url>[email protected]:wangzihaogithub/spring-boot-protocol.git</url>
52-
<tag>v2.3.26</tag>
52+
<tag>v2.3.27</tag>
5353
</scm>
5454

5555
<!-- 开发者信息 -->

src/main/java/com/github/netty/core/util/IOUtil.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,10 +346,12 @@ public static FileInputStream newFileInputStream(String sourcePath, String sourc
346346

347347
public static int indexOf(ByteBuf byteBuf, byte value) {
348348
int len = byteBuf.readableBytes();
349+
int readerIndex = byteBuf.readerIndex();
349350
for (int i = 0; i < len; i++) {
350-
byte b = byteBuf.getByte(i);
351+
int ridx = readerIndex + i;
352+
byte b = byteBuf.getByte(ridx);
351353
if (b == value) {
352-
return i;
354+
return ridx;
353355
}
354356
}
355357
return -1;

src/main/java/com/github/netty/protocol/MqttProtocol.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ public boolean canSupport(ByteBuf msg) {
7171
if (msg.readableBytes() < 9) {
7272
return false;
7373
}
74-
75-
return msg.getByte(4) == 'M'
76-
&& msg.getByte(5) == 'Q'
77-
&& msg.getByte(6) == 'T'
78-
&& msg.getByte(7) == 'T';
74+
int readerIndex = msg.readerIndex();
75+
return msg.getByte(readerIndex + 4) == 'M'
76+
&& msg.getByte(readerIndex + 5) == 'Q'
77+
&& msg.getByte(readerIndex + 6) == 'T'
78+
&& msg.getByte(readerIndex + 7) == 'T';
7979
}
8080

8181
@Override

src/main/java/com/github/netty/protocol/dubbo/DubboDecoder.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ public class DubboDecoder extends ByteToMessageDecoder {
2020
private DubboPacket packet;
2121

2222
public static boolean isDubboProtocol(ByteBuf buffer) {
23+
int readerIndex = buffer.readerIndex();
2324
return buffer.readableBytes() >= 2
24-
&& buffer.getByte(0) == MAGIC_0
25-
&& buffer.getByte(1) == MAGIC_1;
25+
&& buffer.getByte(readerIndex) == MAGIC_0
26+
&& buffer.getByte(readerIndex + 1) == MAGIC_1;
2627
}
2728

2829
@Override
@@ -76,13 +77,15 @@ protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> ou
7677
}
7778

7879
protected Header readHeader(ByteBuf buffer) {
79-
// request and serialization flag.
80-
byte flag = buffer.getByte(2);
81-
byte status = buffer.getByte(3);
82-
long requestId = buffer.getLong(4);
80+
int readerIndex = buffer.readerIndex();
81+
82+
// request and serialization flag. -62 isHeartBeat
83+
byte flag = buffer.getByte(readerIndex + 2);
84+
byte status = buffer.getByte(readerIndex + 3);
85+
long requestId = buffer.getLong(readerIndex + 4);
8386
// 8 - 1-request/0-response
84-
byte type = buffer.getByte(8);
85-
int bodyLength = buffer.getInt(12);
87+
byte type = buffer.getByte(readerIndex + 8);
88+
int bodyLength = buffer.getInt(readerIndex + 12);
8689

8790
ByteBuf headerBytes = buffer.readRetainedSlice(HEADER_LENGTH);
8891
return new Header(headerBytes, flag, status, requestId, type, bodyLength);

src/main/java/com/github/netty/protocol/nrpc/RpcVersion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ public boolean isSupport(ByteBuf msg) {
6363
if (msg == null || msg.readableBytes() < 8) {
6464
return false;
6565
}
66-
66+
int readerIndex = msg.readerIndex();
6767
for (int i = 0; i < PROTOCOL_NAME.length; i++) {
68-
if (PROTOCOL_NAME[i] != msg.getByte(i)) {
68+
if (PROTOCOL_NAME[i] != msg.getByte(readerIndex + i)) {
6969
return false;
7070
}
7171
}

src/main/java/com/github/netty/protocol/servlet/util/Protocol.java

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -26,53 +26,54 @@ public enum Protocol {
2626
public static boolean isHttpPacket(ByteBuf packet) {
2727
int protocolEndIndex = IOUtil.indexOf(packet, HttpConstants.LF);
2828
if (protocolEndIndex == -1 && packet.readableBytes() > 7) {
29+
int readerIndex = packet.readerIndex();
2930
// client multiple write packages. cause browser out of length.
30-
if (packet.getByte(0) == 'G'
31-
&& packet.getByte(1) == 'E'
32-
&& packet.getByte(2) == 'T'
33-
&& packet.getByte(3) == ' '
34-
&& packet.getByte(4) == '/') {
31+
if (packet.getByte(readerIndex) == 'G'
32+
&& packet.getByte(readerIndex + 1) == 'E'
33+
&& packet.getByte(readerIndex + 2) == 'T'
34+
&& packet.getByte(readerIndex + 3) == ' '
35+
&& packet.getByte(readerIndex + 4) == '/') {
3536
return true;
36-
} else if (packet.getByte(0) == 'P'
37-
&& packet.getByte(1) == 'O'
38-
&& packet.getByte(2) == 'S'
39-
&& packet.getByte(3) == 'T'
40-
&& packet.getByte(4) == ' '
41-
&& packet.getByte(5) == '/') {
37+
} else if (packet.getByte(readerIndex) == 'P'
38+
&& packet.getByte(readerIndex + 1) == 'O'
39+
&& packet.getByte(readerIndex + 2) == 'S'
40+
&& packet.getByte(readerIndex + 3) == 'T'
41+
&& packet.getByte(readerIndex + 4) == ' '
42+
&& packet.getByte(readerIndex + 5) == '/') {
4243
return true;
43-
} else if (packet.getByte(0) == 'O'
44-
&& packet.getByte(1) == 'P'
45-
&& packet.getByte(2) == 'T'
46-
&& packet.getByte(3) == 'I'
47-
&& packet.getByte(4) == 'O'
48-
&& packet.getByte(5) == 'N'
49-
&& packet.getByte(6) == 'S'
50-
&& packet.getByte(7) == ' '
51-
&& packet.getByte(8) == '/') {
44+
} else if (packet.getByte(readerIndex) == 'O'
45+
&& packet.getByte(readerIndex + 1) == 'P'
46+
&& packet.getByte(readerIndex + 2) == 'T'
47+
&& packet.getByte(readerIndex + 3) == 'I'
48+
&& packet.getByte(readerIndex + 4) == 'O'
49+
&& packet.getByte(readerIndex + 5) == 'N'
50+
&& packet.getByte(readerIndex + 6) == 'S'
51+
&& packet.getByte(readerIndex + 7) == ' '
52+
&& packet.getByte(readerIndex + 8) == '/') {
5253
return true;
53-
} else if (packet.getByte(0) == 'P'
54-
&& packet.getByte(1) == 'U'
55-
&& packet.getByte(2) == 'T'
56-
&& packet.getByte(3) == ' '
57-
&& packet.getByte(4) == '/') {
54+
} else if (packet.getByte(readerIndex) == 'P'
55+
&& packet.getByte(readerIndex + 1) == 'U'
56+
&& packet.getByte(readerIndex + 2) == 'T'
57+
&& packet.getByte(readerIndex + 3) == ' '
58+
&& packet.getByte(readerIndex + 4) == '/') {
5859
return true;
59-
} else if (packet.getByte(0) == 'D'
60-
&& packet.getByte(1) == 'E'
61-
&& packet.getByte(2) == 'L'
62-
&& packet.getByte(3) == 'E'
63-
&& packet.getByte(4) == 'T'
64-
&& packet.getByte(5) == 'E'
65-
&& packet.getByte(6) == ' '
66-
&& packet.getByte(7) == '/') {
60+
} else if (packet.getByte(readerIndex) == 'D'
61+
&& packet.getByte(readerIndex + 1) == 'E'
62+
&& packet.getByte(readerIndex + 2) == 'L'
63+
&& packet.getByte(readerIndex + 3) == 'E'
64+
&& packet.getByte(readerIndex + 4) == 'T'
65+
&& packet.getByte(readerIndex + 5) == 'E'
66+
&& packet.getByte(readerIndex + 6) == ' '
67+
&& packet.getByte(readerIndex + 7) == '/') {
6768
return true;
6869
} else {
69-
return packet.getByte(0) == 'P'
70-
&& packet.getByte(1) == 'A'
71-
&& packet.getByte(2) == 'T'
72-
&& packet.getByte(3) == 'C'
73-
&& packet.getByte(4) == 'H'
74-
&& packet.getByte(5) == ' '
75-
&& packet.getByte(6) == '/';
70+
return packet.getByte(readerIndex) == 'P'
71+
&& packet.getByte(readerIndex + 1) == 'A'
72+
&& packet.getByte(readerIndex + 2) == 'T'
73+
&& packet.getByte(readerIndex + 3) == 'C'
74+
&& packet.getByte(readerIndex + 4) == 'H'
75+
&& packet.getByte(readerIndex + 5) == ' '
76+
&& packet.getByte(readerIndex + 6) == '/';
7677
}
7778
} else if (protocolEndIndex < 9) {
7879
return false;

src/main/java/com/github/netty/springboot/EnableNettyEmbedded.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
* return false;
3535
* }
3636
* for (int i = 0; i < PROTOCOL_HEADER.length; i++) {
37-
* if (msg.getByte(i) != PROTOCOL_HEADER[i]) {
37+
* if (msg.getByte(msg.readerIndex() + i) != PROTOCOL_HEADER[i]) {
3838
* return false;
3939
* }
4040
* }

src/main/resources/server.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
server.info=Github Spring-boot-protocol/2.3.26
17-
server.number=2.3.26
18-
server.built=Apr 15 2025 21:43:36 UTC+8
16+
server.info=Github Spring-boot-protocol/2.3.27
17+
server.number=2.3.27
18+
server.built=Apr 17 2025 18:52:23 UTC+8

0 commit comments

Comments
 (0)