|
|
@@ -18,6 +18,7 @@ import com.xunmei.mediator.websocket.service.RouterService;
|
|
|
import com.xunmei.mediator.websocket.service.RouterServiceHandler;
|
|
|
import com.xunmei.mediator.websocket.utils.WebSocketUtils;
|
|
|
import com.xunmei.system.api.util.LogUtils;
|
|
|
+import io.netty.util.internal.StringUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
@@ -25,12 +26,11 @@ import org.springframework.web.socket.*;
|
|
|
import org.springframework.web.socket.handler.AbstractWebSocketHandler;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.net.InetSocketAddress;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
/**
|
|
|
* @author gaoxiong
|
|
|
@@ -75,9 +75,13 @@ public class SocWebSocketHandler extends AbstractWebSocketHandler {
|
|
|
|
|
|
String token = (String) session.getAttributes().get("token");
|
|
|
if (StringUtils.isNotEmpty(token)) {
|
|
|
+ String ip = StringUtil.EMPTY_STRING;
|
|
|
+ final List<String> list = session.getHandshakeHeaders().get("x-forwarded-for");
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
+ ip = list.get(0);
|
|
|
+ }
|
|
|
IotServerInfo serverInfo = iotServerInfoService.selectByToken(token);
|
|
|
- InetSocketAddress remoteAddress = session.getRemoteAddress();
|
|
|
- Optional.ofNullable(remoteAddress).ifPresent(address -> serverInfo.setIotIp(address.getAddress().getHostAddress()));
|
|
|
+ serverInfo.setIotIp(ip);
|
|
|
serverInfo.setRegisterCodeStatus(1);
|
|
|
serverInfo.setLastConnectTime(LocalDateTime.now());
|
|
|
serverInfo.setIotStatus(IotServerConnectStatus.CONNECTED.getIdx());
|