Обновление ECI, репозитории, девайсы
This commit is contained in:
@@ -9,9 +9,9 @@ public class Settings {
|
||||
* Интервал отправки heartbeat пакетов в секундах.
|
||||
* Если клиент не отправляет heartbeat пакеты в течение этого времени, сервер может считать его отключенным.
|
||||
*/
|
||||
public long heartbeatInterval = 30;
|
||||
public int heartbeatInterval = 30;
|
||||
|
||||
public Settings(int port, long heartbeatInterval) {
|
||||
public Settings(int port, int heartbeatInterval) {
|
||||
this.port = port;
|
||||
this.heartbeatInterval = heartbeatInterval;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.orprotocol.client;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
@@ -23,7 +22,7 @@ public class Client {
|
||||
/**
|
||||
* Любые данные, связанные с клиентом.
|
||||
*/
|
||||
public Set<ECITag> eciTags;
|
||||
public HashMap<Class<? extends ECITag>, ECITag> eciTags;
|
||||
/**
|
||||
* Интервал отправки heartbeat пакетов в миллисекундах.
|
||||
*/
|
||||
@@ -44,7 +43,7 @@ public class Client {
|
||||
public Client(WebSocket socket, long heartbeatInterval, PacketManager packetManager) {
|
||||
this.socket = socket;
|
||||
this.clientId = StringUtil.randomString(32);
|
||||
this.eciTags = new HashSet<ECITag>();
|
||||
this.eciTags = new HashMap<Class<? extends ECITag>, ECITag>();
|
||||
this.heartbeatInterval = heartbeatInterval;
|
||||
this.lastHeartbeatTime = System.currentTimeMillis();
|
||||
this.packetManager = new PacketManager();
|
||||
@@ -80,7 +79,7 @@ public class Client {
|
||||
* Получает данные, связанные с клиентом.
|
||||
* @return Данные клиента.
|
||||
*/
|
||||
public Set<ECITag> getEciTags() {
|
||||
public HashMap<Class<? extends ECITag>, ECITag> getEciTags() {
|
||||
return this.eciTags;
|
||||
}
|
||||
|
||||
@@ -98,14 +97,14 @@ public class Client {
|
||||
* @param value Значение данных.
|
||||
*/
|
||||
public <T extends ECITag> void addTag(T eciTag) {
|
||||
this.eciTags.add(eciTag);
|
||||
this.eciTags.put(eciTag.getClass(), eciTag);
|
||||
}
|
||||
|
||||
/**
|
||||
* Устанавливает данные клиента.
|
||||
* @param data Данные клиента.
|
||||
*/
|
||||
public void setTags(Set<ECITag> eciTags) {
|
||||
public void setTags(HashMap<Class<? extends ECITag>, ECITag> eciTags) {
|
||||
this.eciTags = eciTags;
|
||||
}
|
||||
|
||||
@@ -114,13 +113,8 @@ public class Client {
|
||||
* @param key Ключ данных.
|
||||
* @return Значение данных.
|
||||
*/
|
||||
public <T extends ECITag> T getTag(ECITag eciTag) {
|
||||
for (ECITag tag : this.eciTags) {
|
||||
if (tag.getKey().equals(eciTag.getKey())) {
|
||||
return (T) tag;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
public <T extends ECITag> T getTag(Class<? extends ECITag> eciTagClass) {
|
||||
return (T) this.eciTags.get(eciTagClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,13 +122,9 @@ public class Client {
|
||||
* @param key Ключ данных.
|
||||
* @return true если данные существуют, иначе false.
|
||||
*/
|
||||
public boolean hasTag(ECITag eciTag) {
|
||||
for (ECITag tag : this.eciTags) {
|
||||
if (tag.getKey().equals(eciTag.getKey())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
public boolean hasTag(Class<? extends ECITag> eciTagClass) {
|
||||
return this.eciTags.containsKey(eciTagClass);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,27 +5,4 @@ package io.orprotocol.client;
|
||||
*
|
||||
* Используется для хранения дополнительной информации о клиенте.
|
||||
*/
|
||||
public abstract class ECITag {
|
||||
|
||||
/**
|
||||
* Ключ тега.
|
||||
*/
|
||||
public String key;
|
||||
|
||||
/**
|
||||
* Создает новый тег с указанным ключом и значением.
|
||||
* @param key Ключ тега.
|
||||
*/
|
||||
public ECITag(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает ключ тега.
|
||||
* @return Ключ тега.
|
||||
*/
|
||||
public String getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
}
|
||||
public abstract class ECITag {}
|
||||
|
||||
Reference in New Issue
Block a user