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