WebSocketParam增加getNames方法
This commit is contained in:
@@ -424,6 +424,21 @@ public final class Rest {
|
||||
mv.visitMaxs(1, 1);
|
||||
mv.visitEnd();
|
||||
}
|
||||
{ //getNames
|
||||
mv = new AsmMethodVisitor(cw2.visitMethod(ACC_PUBLIC, "getNames", "()[Ljava/lang/String;", null, null));
|
||||
pushInt(mv, paramap.size());
|
||||
mv.visitTypeInsn(ANEWARRAY, "java/lang/String");
|
||||
int index = -1;
|
||||
for (Map.Entry<String, Parameter> en : paramap.entrySet()) {
|
||||
mv.visitInsn(DUP);
|
||||
mv.visitInsn(++index);
|
||||
mv.visitLdcInsn(en.getKey());
|
||||
mv.visitInsn(AASTORE);
|
||||
}
|
||||
mv.visitInsn(ARETURN);
|
||||
mv.visitMaxs(paramap.size() + 2, 1);
|
||||
mv.visitEnd();
|
||||
}
|
||||
{ //getValue
|
||||
mv = new AsmMethodVisitor(cw2.visitMethod(ACC_PUBLIC, "getValue", "(Ljava/lang/String;)Ljava/lang/Object;", "<T:Ljava/lang/Object;>(Ljava/lang/String;)TT;", null));
|
||||
for (Map.Entry<String, Parameter> en : paramap.entrySet()) {
|
||||
|
||||
@@ -16,4 +16,6 @@ package org.redkale.net.http;
|
||||
public interface WebSocketParam {
|
||||
|
||||
public <T> T getValue(String name);
|
||||
|
||||
public String[] getNames();
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl
|
||||
temprunner = null;
|
||||
webSocket._userid = userid;
|
||||
if (single && !anyuser) {
|
||||
WebSocketServlet.this.node.existsWebSocket(userid).whenComplete((rs, ex) -> {
|
||||
WebSocketServlet.this.node.existsWebSocket(userid).whenComplete((rs, nex) -> {
|
||||
if (rs) webSocket.onSingleRepeatConnect();
|
||||
WebSocketServlet.this.node.localEngine.add(webSocket);
|
||||
WebSocketRunner runner = new WebSocketRunner(context, webSocket, restMessageConsumer, response.removeChannel());
|
||||
|
||||
@@ -70,6 +70,11 @@ public final class _DyncChatWebSocketServlet extends WebSocketServlet {
|
||||
@ConvertDisabled
|
||||
public _DyncChatWebSocket _redkale_websocket;
|
||||
|
||||
@Override
|
||||
public String[] getNames() {
|
||||
return new String[]{"message", "extmap"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getValue(String name) {
|
||||
if ("message".equals(name)) return (T) message;
|
||||
@@ -100,6 +105,11 @@ public final class _DyncChatWebSocketServlet extends WebSocketServlet {
|
||||
@ConvertDisabled
|
||||
public _DyncChatWebSocket _redkale_websocket;
|
||||
|
||||
@Override
|
||||
public String[] getNames() {
|
||||
return new String[]{"roomid"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getValue(String name) {
|
||||
if ("roomid".equals(name)) return (T) (Integer) roomid;
|
||||
|
||||
Reference in New Issue
Block a user