master
sikadi 2023-10-07 16:51:12 +08:00
parent 10d2cc22ba
commit c33934b107
1 changed files with 24 additions and 28 deletions

View File

@ -8,7 +8,6 @@ import com.sikadi.user.mapper.XfXhConfig;
import com.sikadi.user.service.GTPService; import com.sikadi.user.service.GTPService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import okhttp3.WebSocket; import okhttp3.WebSocket;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -16,54 +15,51 @@ import java.util.Collections;
import java.util.UUID; import java.util.UUID;
/**
* @description:
* @author: ()()()
* @date: 2023/10/7 14:36
* @param:
* @return:
**/
@Service @Service
@Log4j2 @Log4j2
public class GTPServiceImpl implements GTPService { public class GTPServiceImpl implements GTPService {
@Autowired @Resource
private XfXhStreamClient xfXhStreamClient; private XfXhStreamClient xfXhStreamClient;
@Autowired @Resource
private XfXhConfig xfXhConfig; private XfXhConfig xfXhConfig;
@Override @Override
public String send(String ques) { public String send(String ques) {
if (StrUtil.isBlank(ques)) {
MsgDTO mag = MsgDTO.createUserMsg(ques); return "被玩坏了";
XfXhWebSocketListener xfx = new XfXhWebSocketListener(); }
WebSocket web = xfXhStreamClient. MsgDTO msg = MsgDTO.createUserMsg(ques);
sendMsg( XfXhWebSocketListener listener = new XfXhWebSocketListener();
UUID.randomUUID(). WebSocket web = xfXhStreamClient.sendMsg(
toString(). UUID.randomUUID().toString().substring(0, 10),
substring(0, 10), Collections.singletonList(msg),
Collections.singletonList(mag), xfx); listener);
if ( null == web) { if (web == null) {
xfXhStreamClient.operateToken(XfXhStreamClient.BACK_TOKEN_STATUS); xfXhStreamClient.operateToken(XfXhStreamClient.BACK_TOKEN_STATUS);
return "错误"; return "错误";
} }
try { try {
int a = 0; int a = 0;
int b = xfXhConfig.getMaxResponseTime() * 5;
int b = xfXhConfig.getMaxResponseTime() * 5;
while (a <= b) { while (a <= b) {
Thread.sleep(200); Thread.sleep(200);
if (xfx.isWsCloseFlag()) { break; } if (listener.isWsCloseFlag()) {
break;
}
a++; a++;
} }
return xfx.getAnswer().toString(); if (a > b) {
return "超时";
}
return listener.getAnswer().toString();
} catch (InterruptedException e) { } catch (InterruptedException e) {
return "错误"; log.error("错:" + e.getMessage());
return "错";
} finally { } finally {
web.close(100, ""); web.close(1000, "");
xfXhStreamClient.operateToken(XfXhStreamClient.BACK_TOKEN_STATUS); xfXhStreamClient.operateToken(XfXhStreamClient.BACK_TOKEN_STATUS);
} }
} }