Синхронизация сообщений, чтения в группах, синхронизация ключей групп
This commit is contained in:
@@ -53,7 +53,7 @@ public class ClientManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Отправить пакет всем АВТОРИЗОВАННЫМ клиентам с публичным ключом publicKey
|
||||
* Отправить пакет ВСЕМ АВТОРИЗОВАННЫМ клиентам с публичным ключом publicKey
|
||||
* @param publicKey публичный ключ получателя
|
||||
* @param packet пакет для отправки
|
||||
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
||||
@@ -83,6 +83,34 @@ public class ClientManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Отправить пакет всем клиентам с публичными ключом как у client, кроме клиента client, который является отправителем и не должен получать этот пакет
|
||||
* @param client клиент
|
||||
* @param packet пакет для отправки
|
||||
* @throws ProtocolException
|
||||
*/
|
||||
public void retranslate(Client client, Packet packet) throws ProtocolException{
|
||||
ECIAuthentificate eciAuthentificate = client.getTag(ECIAuthentificate.class);
|
||||
HashSet<Client> clients = this.clientIndexer
|
||||
.getClients(ECIAuthentificate.class, "publicKey", eciAuthentificate.getPublicKey());
|
||||
if(clients == null){
|
||||
/**
|
||||
* Нет авторизованных сессий с таким публичным ключом
|
||||
*/
|
||||
return;
|
||||
}
|
||||
for(Client c : clients){
|
||||
/**
|
||||
* Проходим по всем устройствам с таким публичным ключом и ретранслируем им пакет, кроме того устройства что
|
||||
* отправило пакет
|
||||
*/
|
||||
if(c.equals(client)){
|
||||
continue;
|
||||
}
|
||||
c.send(packet);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Отправить пакет всем клиентам с публичными ключами из списка publicKeys
|
||||
* @param publicKeys список публичных ключей получателей
|
||||
|
||||
Reference in New Issue
Block a user