Улучшенное получение IP адреса за nginx
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user