Лобавил пинг
This commit is contained in:
AidarKC 2026-02-19 17:33:58 +03:00
parent 6949fd8a2f
commit c7440e2b5c
4 changed files with 84 additions and 5 deletions

View File

@ -42,12 +42,14 @@ import server.logic.ws_protocol.JSON.handlers.userParams.entyties.Net_GetUserPar
import server.logic.ws_protocol.JSON.handlers.userParams.entyties.Net_ListUserParams_Request; import server.logic.ws_protocol.JSON.handlers.userParams.entyties.Net_ListUserParams_Request;
import server.logic.ws_protocol.JSON.handlers.userParams.entyties.Net_UpsertUserParam_Request; import server.logic.ws_protocol.JSON.handlers.userParams.entyties.Net_UpsertUserParam_Request;
// --- subscriptions ---
// --- NEW: connections friends lists --- // --- NEW: connections friends lists ---
import server.logic.ws_protocol.JSON.handlers.connections.Net_GetFriendsLists_Handler; import server.logic.ws_protocol.JSON.handlers.connections.Net_GetFriendsLists_Handler;
import server.logic.ws_protocol.JSON.handlers.connections.entyties.Net_GetFriendsLists_Request; import server.logic.ws_protocol.JSON.handlers.connections.entyties.Net_GetFriendsLists_Request;
// --- NEW: Ping ---
import server.logic.ws_protocol.JSON.handlers.system.Net_Ping_Handler;
import server.logic.ws_protocol.JSON.handlers.system.entyties.Net_Ping_Request;
import java.util.Map; import java.util.Map;
/** /**
@ -80,7 +82,10 @@ public final class JsonHandlerRegistry {
Map.entry("ListUserParams", new Net_ListUserParams_Handler()), Map.entry("ListUserParams", new Net_ListUserParams_Handler()),
// --- connections --- // --- connections ---
Map.entry("GetFriendsLists", new Net_GetFriendsLists_Handler()) Map.entry("GetFriendsLists", new Net_GetFriendsLists_Handler()),
// --- system ---
Map.entry("Ping", new Net_Ping_Handler())
// --- subscriptions --- // --- subscriptions ---
// Map.entry("ListSubscribedChannels", new Net_GetSubscribedChannels_Handler()) // Map.entry("ListSubscribedChannels", new Net_GetSubscribedChannels_Handler())
@ -109,9 +114,11 @@ public final class JsonHandlerRegistry {
Map.entry("GetUserParam", Net_GetUserParam_Request.class), Map.entry("GetUserParam", Net_GetUserParam_Request.class),
Map.entry("ListUserParams", Net_ListUserParams_Request.class), Map.entry("ListUserParams", Net_ListUserParams_Request.class),
// --- connections --- // --- connections ---
Map.entry("GetFriendsLists", Net_GetFriendsLists_Request.class) Map.entry("GetFriendsLists", Net_GetFriendsLists_Request.class),
// --- system ---
Map.entry("Ping", Net_Ping_Request.class)
); );
private JsonHandlerRegistry() { } private JsonHandlerRegistry() { }

View File

@ -0,0 +1,31 @@
package server.logic.ws_protocol.JSON.handlers.system;
import server.logic.ws_protocol.JSON.ConnectionContext;
import server.logic.ws_protocol.JSON.entyties.Net_Request;
import server.logic.ws_protocol.JSON.entyties.Net_Response;
import server.logic.ws_protocol.JSON.handlers.JsonMessageHandler;
import server.logic.ws_protocol.JSON.handlers.system.entyties.Net_Ping_Request;
import server.logic.ws_protocol.JSON.handlers.system.entyties.Net_Ping_Response;
import server.logic.ws_protocol.WireCodes;
/**
* Ping keep-alive.
* В ответ кладём только ts (текущее время сервера в мс).
*/
public class Net_Ping_Handler implements JsonMessageHandler {
@Override
public Net_Response handle(Net_Request baseRequest, ConnectionContext ctx) {
Net_Ping_Request req = (Net_Ping_Request) baseRequest;
Net_Ping_Response resp = new Net_Ping_Response();
resp.setOp(req.getOp()); // "Ping"
resp.setRequestId(req.getRequestId());
resp.setStatus(WireCodes.Status.OK);
// ничего не проверяем, просто отдаём серверное время
resp.setTs(System.currentTimeMillis());
return resp;
}
}

View File

@ -0,0 +1,21 @@
package server.logic.ws_protocol.JSON.handlers.system.entyties;
import server.logic.ws_protocol.JSON.entyties.Net_Request;
/**
* Ping:
* {
* "op": "Ping",
* "requestId": "req-1",
* "payload": { "ts": 1700000000000 }
* }
*
* Сервер ничего не проверяет, поле ts можно слать любое.
*/
public class Net_Ping_Request extends Net_Request {
private long ts;
public long getTs() { return ts; }
public void setTs(long ts) { this.ts = ts; }
}

View File

@ -0,0 +1,20 @@
package server.logic.ws_protocol.JSON.handlers.system.entyties;
import server.logic.ws_protocol.JSON.entyties.Net_Response;
/**
* Pong-ответ:
* {
* "op": "Ping",
* "requestId": "req-1",
* "status": 200,
* "payload": { "ts": 1700000000123 }
* }
*/
public class Net_Ping_Response extends Net_Response {
private long ts;
public long getTs() { return ts; }
public void setTs(long ts) { this.ts = ts; }
}