Улучшенное получение IP адреса за nginx

This commit is contained in:
2026-02-21 00:02:51 +02:00
parent 3c9be407de
commit 38c8e07ef7
2 changed files with 31 additions and 1 deletions

View File

@@ -155,13 +155,23 @@ public class Server extends WebSocketServer {
}
@Override
public void onOpen(WebSocket socket, ClientHandshake arg1) {
public void onOpen(WebSocket socket, ClientHandshake handshake) {
/**
* Создаем нового клиента при открытии соединения.
* Передаем интервал heartbeat из настроек сервера.
* Если клиент не отправляет heartbeat в указанный интервал, его можно отключить.
*/
Client client = new Client(socket, this.settings.heartbeatInterval, this);
String ipAddress = handshake.getFieldValue("X-Forwarded-For");
if (ipAddress == null || ipAddress.isEmpty()) {
ipAddress = socket.getRemoteSocketAddress().getAddress().getHostAddress();
} else {
/**
* Берем первый IP адрес из списка разделенного запятой
*/
ipAddress = ipAddress.split(",")[0].trim();
}
client.setIpAddress(ipAddress);
socket.setAttachment(client);
if(this.listener == null){
return;