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