移除WebSocket泛型

This commit is contained in:
redkale
2024-10-26 09:32:39 +08:00
parent 020d9c853d
commit 8f257761fd
9 changed files with 38 additions and 20 deletions

View File

@@ -616,7 +616,7 @@ public final class Rest {
"createWebSocket", "createWebSocket",
"()" + wsDesc, "()" + wsDesc,
"<G::Ljava/io/Serializable;T:Ljava/lang/Object;>()L" "<G::Ljava/io/Serializable;T:Ljava/lang/Object;>()L"
+ WebSocket.class.getName().replace('.', '/') + "<TG;TT;>;", + WebSocket.class.getName().replace('.', '/') + "<TG;>;",
null)); null));
mv.visitTypeInsn(NEW, newDynName + "$" + newDynWebSokcetSimpleName); mv.visitTypeInsn(NEW, newDynName + "$" + newDynWebSokcetSimpleName);
mv.visitInsn(DUP); mv.visitInsn(DUP);

View File

@@ -46,10 +46,9 @@ import org.redkale.util.ByteArray;
* <p>详情见: https://redkale.org * <p>详情见: https://redkale.org
* *
* @author zhangjx * @author zhangjx
* @param <G> Groupid的泛型 * @param <G> userid的泛型
* @param <T> Message的泛型
*/ */
public abstract class WebSocket<G extends Serializable, T> { public abstract class WebSocket<G extends Serializable> {
// --------------------------- CLOSECODE ------------------------------- // --------------------------- CLOSECODE -------------------------------
@Comment("服务器主动关闭") @Comment("服务器主动关闭")
@@ -835,14 +834,6 @@ public abstract class WebSocket<G extends Serializable, T> {
messageEvent.run(); messageEvent.run();
} }
/**
* 接收到消息的回调方法
*
* @param message 消息
* @param last 是否最后一条
*/
public void onMessage(T message, boolean last) {}
/** /**
* 接收到文本消息的回调方法 * 接收到文本消息的回调方法
* *

View File

@@ -477,7 +477,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl
}); });
} }
protected abstract <G extends Serializable, T> WebSocket<G, T> createWebSocket(); protected abstract <G extends Serializable> WebSocket<G> createWebSocket();
protected WebSocketNode createWebSocketNode() { protected WebSocketNode createWebSocketNode() {
return null; return null;

View File

@@ -29,13 +29,12 @@ public class ChatWebSocketServlet extends WebSocketServlet {
} }
@Override @Override
protected WebSocket<Integer, ChatMessage> createWebSocket() { protected WebSocket<Integer> createWebSocket() {
return new WebSocket<Integer, ChatMessage>() { return new WebSocket<Integer>() {
private UserInfo user; private UserInfo user;
@Override
public void onMessage( public void onMessage(
ChatMessage message, ChatMessage message,
boolean last) { // text 接收的格式: {"receiveid":200000001, "content":"Hi Redkale!"} boolean last) { // text 接收的格式: {"receiveid":200000001, "content":"Hi Redkale!"}

View File

@@ -86,7 +86,6 @@ public class VideoWebSocketServlet extends WebSocketServlet {
return null; return null;
} }
@Override
public void onMessage(Object text, boolean last) { public void onMessage(Object text, boolean last) {
// System.out.println("接收到消息: " + text); // System.out.println("接收到消息: " + text);
super.broadcastMessage(text, last); super.broadcastMessage(text, last);

View File

@@ -15,7 +15,7 @@ import org.redkale.net.http.WebSocket;
* @author zhangjx * @author zhangjx
*/ */
@RestWebSocket(name = "wstest", catalog = "ws", wsmaxconns = 100, comment = "WebSocket服务", repair = false) @RestWebSocket(name = "wstest", catalog = "ws", wsmaxconns = 100, comment = "WebSocket服务", repair = false)
public class GameWebSocket extends WebSocket<Long, Object> { public class GameWebSocket extends WebSocket<Long> {
@Override @Override
protected CompletableFuture<String> onOpen(final HttpRequest request) { protected CompletableFuture<String> onOpen(final HttpRequest request) {

View File

@@ -15,7 +15,7 @@ import org.redkale.test.rest.*;
/** @author zhangjx */ /** @author zhangjx */
// anyuser = true 表示WebSocket.createUserid返回的值不表示用户登录态 // anyuser = true 表示WebSocket.createUserid返回的值不表示用户登录态
@RestWebSocket(name = "chat", catalog = "ws", comment = "文字聊天", anyuser = true) @RestWebSocket(name = "chat", catalog = "ws", comment = "文字聊天", anyuser = true)
public class ChatWebSocket extends WebSocket<Integer, Object> { public class ChatWebSocket extends WebSocket<Integer> {
// @Resource标记的Field只能被修饰为public或protected // @Resource标记的Field只能被修饰为public或protected
@Resource @Resource

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2016-2116 Redkale
* All rights reserved.
*/
package org.redkale.test.ws;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.redkale.net.http.Rest;
import org.redkale.net.http.WebSocketServlet;
import org.redkale.util.RedkaleClassLoader;
/**
*
* @author zhangjx
*/
public class WebSocketTest {
public static void main(String[] args) throws Throwable {
WebSocketTest test = new WebSocketTest();
test.run1();
}
@Test
public void run1() throws Exception {
RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader();
WebSocketServlet ws = Rest.createRestWebSocketServlet(classLoader, ChatWebSocket.class, null);
Assertions.assertTrue(ws != null);
}
}

View File

@@ -36,7 +36,7 @@ public final class _DyncChatWebSocketServlet extends WebSocketServlet {
} }
@Override @Override
protected <G extends Serializable, T> WebSocket<G, T> createWebSocket() { protected <G extends Serializable> WebSocket<G> createWebSocket() {
return (WebSocket) new _DyncChatWebSocket(_redkale_resource_0, _redkale_resource_1); return (WebSocket) new _DyncChatWebSocket(_redkale_resource_0, _redkale_resource_1);
} }