登录被顶 超时
This commit is contained in:
parent
51d33a1137
commit
229965a3c9
|
|
@ -43,8 +43,9 @@ class LoginSocket{
|
|||
|
||||
|
||||
connect() async {
|
||||
|
||||
socket?.close();
|
||||
socket = await Socket.connect(url, port, timeout: const Duration(seconds: 30));
|
||||
heartTime = DateTime.now().millisecondsSinceEpoch;
|
||||
|
||||
socket?.listen((event) {
|
||||
|
||||
|
|
@ -58,6 +59,11 @@ class LoginSocket{
|
|||
// 服务器心跳
|
||||
if (data['op'] == 4){
|
||||
try{
|
||||
|
||||
// 更新上次心跳时间
|
||||
heartTime = DateTime.now().millisecondsSinceEpoch;
|
||||
|
||||
// 心跳回报时间是否超时
|
||||
int time = data['time'];
|
||||
time = DateTime.now().millisecondsSinceEpoch - time;
|
||||
if(time> (3 * 60 * 1000) ){ // 时间戳 > 3分钟
|
||||
|
|
@ -107,17 +113,17 @@ class LoginSocket{
|
|||
|
||||
/// 心跳
|
||||
heartbeat(){
|
||||
DateTime now = DateTime.now();
|
||||
int timestamp = now.millisecondsSinceEpoch; // 秒
|
||||
heartTime = timestamp;
|
||||
|
||||
Timer(const Duration(seconds: 20), () async {
|
||||
|
||||
if (socket == null){
|
||||
// 重连
|
||||
await connect();
|
||||
final time = DateTime.now().millisecondsSinceEpoch - heartTime;
|
||||
if(time > (3 * 60 * 1000) ){ // 时间戳 > 3分钟
|
||||
socketError();
|
||||
return;
|
||||
}
|
||||
|
||||
heartbeat();
|
||||
|
||||
Map map = {
|
||||
"op": 3,
|
||||
};
|
||||
|
|
@ -125,8 +131,6 @@ class LoginSocket{
|
|||
socket?.add(dataMake(map));
|
||||
socket?.flush();
|
||||
|
||||
heartbeat();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue