diff --git a/README.md b/README.md
index ea4a3e2bdd2ce8b401cf9ba6827c528dd938ce4f..26062e38796bb2561e21497ee70e6ce88fe6e1e4 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,7 @@ smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了
org.smartboot.servlet
smart-servlet-maven-plugin
- 0.1.9-SNAPSHOT
+ 0.2
8080
@@ -67,12 +67,12 @@ smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了
org.smartboot.servlet
plugin-session
- 0.1.9-SNAPSHOT
+ 0.2
org.smartboot.servlet
plugin-dispatcher
- 0.1.9-SNAPSHOT
+ 0.2
@@ -102,7 +102,7 @@ smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了
org.smartboot.servlet
smart-servlet-spring-boot-starter
- 0.1.9-SNAPSHOT
+ 0.2
diff --git a/pom.xml b/pom.xml
index fa65d4e017885e7e9a7780dfef2c05d683024fef..ede6181c3d623c568931577d46db15d439f06a67 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,12 +5,12 @@
4.0.0
org.smartboot.servlet
smart-servlet-parent
- 0.1.9-SNAPSHOT
+ 0.2
pom
- 1.1.20-SNAPSHOT
- 0.1.9-SNAPSHOT
+ 1.1.22
+ 0.2
3.1.0
1.3.2
diff --git a/servlet-core/pom.xml b/servlet-core/pom.xml
index 08c676a808ee98f41634d9b21f0203bd473f737e..f39a12e2466dfad0b590e6c78b6e28672f066025 100644
--- a/servlet-core/pom.xml
+++ b/servlet-core/pom.xml
@@ -5,7 +5,7 @@
smart-servlet-parent
org.smartboot.servlet
- 0.1.9-SNAPSHOT
+ 0.2
servlet-core
4.0.0
diff --git a/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java b/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java
index e5b4e54ee47c8a2f06c84c89a547fff5e871405a..cd552332451f70602f0f134a9547ee312910053e 100644
--- a/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java
+++ b/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java
@@ -62,7 +62,7 @@ public class ContainerRuntime {
* Font Name: Puffy
*/
private static final String BANNER = " _ _ _ \n" + " ( )_ (_ ) ( )_ \n" + " ___ ___ ___ _ _ _ __ | ,_) ___ __ _ __ _ _ | | __ | ,_)\n" + "/',__)/' _ ` _ `\\ /'_` )( '__)| | /',__) /'__`\\( '__)( ) ( ) | | /'__`\\| | \n" + "\\__, \\| ( ) ( ) |( (_| || | | |_ \\__, \\( ___/| | | \\_/ | | | ( ___/| |_ \n" + "(____/(_) (_) (_)`\\__,_)(_) `\\__) (____/`\\____)(_) `\\___/'(___)`\\____)`\\__)";
- public static final String VERSION = "0.1.9-SNAPSHOT";
+ public static final String VERSION = "0.2";
/**
* 注册在当前 Servlet 容器中的运行环境
*/
diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java
index 7bcd3ce14b36ffc7e339243a0ab3f8c29ba339f3..8262dd4651545223fb5762f107b4d33c17e1d520 100644
--- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java
+++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java
@@ -21,6 +21,8 @@ import org.smartboot.servlet.plugins.websocket.impl.SmartServerEndpointConfig;
import org.smartboot.servlet.plugins.websocket.impl.WebsocketServerContainer;
import org.smartboot.servlet.plugins.websocket.impl.WebsocketSession;
import org.smartboot.servlet.provider.WebsocketProvider;
+import org.smartboot.socket.util.AttachKey;
+import org.smartboot.socket.util.Attachment;
import javax.websocket.PongMessage;
import javax.websocket.Session;
@@ -39,6 +41,8 @@ import java.util.Map;
* @version V1.0 , 2021/3/31
*/
public class WebsocketProviderImpl implements WebsocketProvider {
+
+ private static final AttachKey WEBSOCKET_SESSION_ATTACH_KEY = AttachKey.valueOf("websocketSession");
private final WebsocketServerContainer container;
public WebsocketProviderImpl(WebsocketServerContainer container) {
@@ -48,7 +52,8 @@ public class WebsocketProviderImpl implements WebsocketProvider {
@Override
public void doHandle(ServletContextRuntime runtime, WebSocketRequest request, WebSocketResponse response) {
try {
- WebsocketSession session = request.getAttachment();
+ Attachment attachment = request.getAttachment();
+ WebsocketSession session = attachment.get(WEBSOCKET_SESSION_ATTACH_KEY);
switch (request.getFrameOpcode()) {
case WebSocketRequestImpl.OPCODE_TEXT:
handleTextMessage(session.getTextMessageHandler(), new String(request.getPayload(), StandardCharsets.UTF_8));
@@ -117,8 +122,13 @@ public class WebsocketProviderImpl implements WebsocketProvider {
}
AnnotatedEndpoint endpoint = new AnnotatedEndpoint(matchedServerEndpointConfig, data);
+ Attachment attachment = request.getAttachment();
+ if (attachment == null) {
+ attachment = new Attachment();
+ request.setAttachment(attachment);
+ }
WebsocketSession websocketSession = new WebsocketSession(container, endpoint, URI.create(request.getRequestURI()));
- request.setAttachment(websocketSession);
+ attachment.put(WEBSOCKET_SESSION_ATTACH_KEY, websocketSession);
//注册 OnMessage 回调
Map finalData = data;
diff --git a/smart-servlet-maven-plugin/pom.xml b/smart-servlet-maven-plugin/pom.xml
index ad0e3304a4d8fd4de1767b4ef19828c528ac4752..7dfa6f553a21a36ccf312b7e3a11f3e47168826b 100644
--- a/smart-servlet-maven-plugin/pom.xml
+++ b/smart-servlet-maven-plugin/pom.xml
@@ -5,7 +5,7 @@
smart-servlet-parent
org.smartboot.servlet
- 0.1.9-SNAPSHOT
+ 0.2
4.0.0
maven-plugin
diff --git a/spring-boot-starter/pom.xml b/spring-boot-starter/pom.xml
index c76f3800dcc9cc060da477c6649399fa04e0c28e..88fc921b0bf69f204058528b592b1fe93f6ce64c 100644
--- a/spring-boot-starter/pom.xml
+++ b/spring-boot-starter/pom.xml
@@ -5,7 +5,7 @@
smart-servlet-parent
org.smartboot.servlet
- 0.1.9-SNAPSHOT
+ 0.2
4.0.0
diff --git a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java
index fb697a0fa62307008906f7a065cc798ddb6c6143..90820e2085e4de92564a15a78ffca04dfb90818e 100644
--- a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java
+++ b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java
@@ -16,14 +16,13 @@ import org.smartboot.http.server.HttpServerHandler;
import org.smartboot.http.server.WebSocketHandler;
import org.smartboot.http.server.WebSocketRequest;
import org.smartboot.http.server.WebSocketResponse;
-import org.smartboot.http.server.impl.Request;
+import org.smartboot.http.server.impl.WebSocketRequestImpl;
+import org.smartboot.http.server.impl.WebSocketResponseImpl;
import org.smartboot.servlet.ContainerRuntime;
import org.smartboot.servlet.ServletContextRuntime;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.WebServerException;
-import java.io.IOException;
-
/**
* @author 三刀
* @version V1.0 , 2020/10/12
@@ -48,9 +47,8 @@ public class SmartServletServer implements WebServer {
}
}).webSocketHandler(new WebSocketHandler() {
@Override
- public void onHeaderComplete(Request request) throws IOException {
- super.onHeaderComplete(request);
- containerRuntime.onHeaderComplete(request);
+ public void whenHeaderComplete(WebSocketRequestImpl request, WebSocketResponseImpl response) {
+ containerRuntime.onHeaderComplete(request.getRequest());
}
@Override
diff --git a/testsuite/pom.xml b/testsuite/pom.xml
index 77f78ef8bbe6069bee19f2d7ad429baf95f11319..0ba0ed75fd042a30c31fea3afb4de25b8b2ff509 100644
--- a/testsuite/pom.xml
+++ b/testsuite/pom.xml
@@ -73,7 +73,7 @@
org.smartboot.servlet
smart-servlet-maven-plugin
- 0.1.9-SNAPSHOT
+ 0.2
8081
/demo