|
@@ -1,6 +1,7 @@
|
|
|
package cn.com.qmth.examcloud.ws.core;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.lang.reflect.Method;
|
|
|
|
|
|
import javax.websocket.OnClose;
|
|
|
import javax.websocket.OnError;
|
|
@@ -12,6 +13,7 @@ import javax.websocket.server.ServerEndpoint;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import cn.com.qmth.examcloud.commons.util.DateUtil;
|
|
|
+import cn.com.qmth.examcloud.commons.util.JsonUtil;
|
|
|
|
|
|
@ServerEndpoint("/ws")
|
|
|
@Component
|
|
@@ -36,11 +38,31 @@ public class WebSocketServerEndpoint {
|
|
|
public void onMessage(Session session, String message) {
|
|
|
System.out.println("onMessage; session=" + session);
|
|
|
System.out.println("onMessage; message=" + message);
|
|
|
+
|
|
|
+ MessageIn messageIn = null;
|
|
|
try {
|
|
|
- session.getBasicRemote().sendText(DateUtil.chinaNow() + "| cao egg");
|
|
|
- } catch (IOException e) {
|
|
|
+ messageIn = JsonUtil.fromJson(message, MessageIn.class);
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+
|
|
|
+ String path = messageIn.getPath();
|
|
|
+ Method method = MessageHandlerHolder.getMethod(path);
|
|
|
+
|
|
|
+ Object ret = null;
|
|
|
+ try {
|
|
|
+ ret = method.invoke(messageIn);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (null == ret) {
|
|
|
+ try {
|
|
|
+ session.getBasicRemote().sendText(JsonUtil.toJson(ret));
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@OnError
|