|
|
@@ -12,16 +12,22 @@ import javax.websocket.server.PathParam;
|
|
|
import javax.websocket.server.ServerEndpoint;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import me.zhengjie.security.security.TokenProvider;
|
|
|
+
|
|
|
@ServerEndpoint("/appSocketServer/{sname}")
|
|
|
@Component
|
|
|
public class AppSocketServer {
|
|
|
+
|
|
|
private static final Logger log = LoggerFactory.getLogger(AppSocketServer.class);
|
|
|
private static int onlineCount = 0;
|
|
|
private static CopyOnWriteArraySet<AppSocketServer> webSocketSet = new CopyOnWriteArraySet<>();
|
|
|
private Session session;
|
|
|
private String sname = "";
|
|
|
+ @Autowired
|
|
|
+ TokenProvider tokenProvider;
|
|
|
|
|
|
public AppSocketServer() {
|
|
|
// com.gangquan360.smartadmin.module.employee.EmployeeController.query dd;
|
|
|
@@ -69,14 +75,28 @@ public class AppSocketServer {
|
|
|
|
|
|
@OnMessage
|
|
|
public void onMessage(String message, Session session) {
|
|
|
+ String[] msgs = null;
|
|
|
+ String heartbeat = message;
|
|
|
+ if (message.contains(",")) {
|
|
|
+ msgs = message.split(",");
|
|
|
+ heartbeat = msgs[0];
|
|
|
+ }
|
|
|
log.info("收到来自窗口" + this.sname + "的信息:" + message);
|
|
|
Iterator<AppSocketServer> iterator = webSocketSet.iterator();
|
|
|
|
|
|
while (iterator.hasNext()) {
|
|
|
AppSocketServer item = (AppSocketServer) iterator.next();
|
|
|
try {
|
|
|
+ // 判断token是否存在,不存在则删除
|
|
|
if (item.sname.equals(this.sname)) {
|
|
|
- item.sendMessage(message);
|
|
|
+ if (msgs != null && msgs[1] != null) {
|
|
|
+ Object obj = tokenProvider.getToken(msgs[1]);
|
|
|
+ if (obj == null) {
|
|
|
+ item.sendMessage("close");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.sendMessage(heartbeat);
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|