This commit is contained in:
Redkale
2018-01-11 14:28:40 +08:00
parent 26fc039aa5
commit f254519a1c
3 changed files with 31 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* 标记在RestWebSocket的接收消息方法上
* 标记在RestWebSocket的接收消息方法上方法通常是void返回类型
*
* <br><p>
* 详情见: https://redkale.org

View File

@@ -694,6 +694,19 @@ public abstract class WebSocket<G extends Serializable, T> {
public void onPong(byte[] bytes) {
}
/**
* 尚未实现~~
*
* 接收到消息前的拦截方法, ping/pong不在其内 <br>
* 注意:处理完后需要调用 messageEvent.run() 才能响应onMessage
*
* @param restmapping Rest的方法名没有则为空字符串
* @param messageEvent onMessage事件
*/
public void preOnMessage(String restmapping, Runnable messageEvent) {
messageEvent.run();
}
/**
* 接收到消息的回调方法
*

View File

@@ -307,6 +307,23 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl
return null;
}
//供Rest构建RestWebSocket时使用
protected static interface MessageEventRunner extends Runnable {
public void execute() throws Throwable;
@Override
default void run() {
try {
execute();
} catch (RuntimeException e) {
throw e;
} catch (Throwable t) {
throw new RuntimeException(t);
}
}
}
private static MessageDigest getMessageDigest() {
try {
return MessageDigest.getInstance("SHA-1");