END_CALL для остальных устройств принявшего звонок пользователя
This commit is contained in:
@@ -56,9 +56,10 @@ public class ClientManager {
|
|||||||
* Отправить пакет ВСЕМ АВТОРИЗОВАННЫМ клиентам с публичным ключом publicKey
|
* Отправить пакет ВСЕМ АВТОРИЗОВАННЫМ клиентам с публичным ключом publicKey
|
||||||
* @param publicKey публичный ключ получателя
|
* @param publicKey публичный ключ получателя
|
||||||
* @param packet пакет для отправки
|
* @param packet пакет для отправки
|
||||||
|
* @param exclude клиент, который не должен получать этот пакет, может быть null
|
||||||
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
||||||
*/
|
*/
|
||||||
public void sendPacketToAuthorizedPK(String publicKey, Packet packet) throws ProtocolException {
|
public void sendPacketToAuthorizedPK(String publicKey, Packet packet, Client exclude) throws ProtocolException {
|
||||||
Set<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
|
Set<Client> clients = this.clientIndexer.getClients(ECIAuthentificate.class, "publicKey", publicKey);
|
||||||
if(clients == null){
|
if(clients == null){
|
||||||
/**
|
/**
|
||||||
@@ -77,12 +78,55 @@ public class ClientManager {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Отправляем пакет каждому клиенту с таким публичным ключом (то есть всем его авторизованным сессиям/устройствам)
|
* Отправляем пакет каждому клиенту с таким публичным ключом (то есть всем его авторизованным сессиям/устройствам),
|
||||||
|
* исключая клиента exclude
|
||||||
*/
|
*/
|
||||||
|
if(exclude != null && client.equals(exclude)){
|
||||||
|
/**
|
||||||
|
* Этот клиент является исключением, он не должен получать этот пакет
|
||||||
|
*/
|
||||||
|
continue;
|
||||||
|
}
|
||||||
client.send(packet);
|
client.send(packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Отправить пакет ВСЕМ АВТОРИЗОВАННЫМ клиентам с публичным ключом publicKey
|
||||||
|
* @param publicKey публичный ключ получателя
|
||||||
|
* @param packet пакет для отправки
|
||||||
|
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
||||||
|
*/
|
||||||
|
public void sendPacketToAuthorizedPK(String publicKey, Packet packet) throws ProtocolException {
|
||||||
|
this.sendPacketToAuthorizedPK(publicKey, packet, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Отправить пакет всем клиентам с публичными ключами из списка publicKeys
|
||||||
|
* @param publicKeys список публичных ключей получателей
|
||||||
|
* @param packet пакет для отправки
|
||||||
|
* @param exclude клиент, который не должен получать этот пакет, может быть null
|
||||||
|
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
||||||
|
*/
|
||||||
|
public void sendPacketToAuthorizedPK(List<String> publicKeys, Packet packet, Client exclude) throws ProtocolException {
|
||||||
|
for(String publicKey : publicKeys){
|
||||||
|
this.sendPacketToAuthorizedPK(publicKey, packet, exclude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Отправить пакет всем клиентам с публичными ключами из списка publicKeys
|
||||||
|
* @param publicKeys список публичных ключей получателей
|
||||||
|
* @param packet пакет для отправки
|
||||||
|
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
||||||
|
*/
|
||||||
|
public void sendPacketToAuthorizedPK(List<String> publicKeys, Packet packet) throws ProtocolException {
|
||||||
|
for(String publicKey : publicKeys){
|
||||||
|
this.sendPacketToAuthorizedPK(publicKey, packet, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отправить пакет всем клиентам с публичными ключом как у client, кроме клиента client, который является отправителем и не должен получать этот пакет
|
* Отправить пакет всем клиентам с публичными ключом как у client, кроме клиента client, который является отправителем и не должен получать этот пакет
|
||||||
* @param client клиент
|
* @param client клиент
|
||||||
@@ -111,18 +155,6 @@ public class ClientManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Отправить пакет всем клиентам с публичными ключами из списка publicKeys
|
|
||||||
* @param publicKeys список публичных ключей получателей
|
|
||||||
* @param packet пакет для отправки
|
|
||||||
* @throws ProtocolException если произошла ошибка при отправке пакета клиенту
|
|
||||||
*/
|
|
||||||
public void sendPacketToAuthorizedPK(List<String> publicKeys, Packet packet) throws ProtocolException {
|
|
||||||
for(String publicKey : publicKeys){
|
|
||||||
this.sendPacketToAuthorizedPK(publicKey, packet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получить список клиентов по публичному ключу (get PublicKey clients), могут быть неавторизованные клиенты
|
* Получить список клиентов по публичному ключу (get PublicKey clients), могут быть неавторизованные клиенты
|
||||||
* @param publicKey публичный ключ клиента
|
* @param publicKey публичный ключ клиента
|
||||||
|
|||||||
@@ -141,6 +141,13 @@ public class Executor26SignalPeer extends PacketExecutor<Packet26SignalPeer> {
|
|||||||
room.addParticipant(participant);
|
room.addParticipant(participant);
|
||||||
}
|
}
|
||||||
session.sendPacket(packet, client);
|
session.sendPacket(packet, client);
|
||||||
|
/**
|
||||||
|
* Сбрасываем вызов на всех остальных устройствах пользователя, который принимает звонок,
|
||||||
|
* чтобы он не смог принять или отклонить звонок с другого устройства
|
||||||
|
*/
|
||||||
|
Packet26SignalPeer endCallOtherDevices = new Packet26SignalPeer();
|
||||||
|
endCallOtherDevices.setSignalType(NetworkSignalType.END_CALL);
|
||||||
|
this.clientManager.sendPacketToAuthorizedPK(src, endCallOtherDevices, client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(type == NetworkSignalType.KEY_EXCHANGE){
|
if(type == NetworkSignalType.KEY_EXCHANGE){
|
||||||
|
|||||||
Reference in New Issue
Block a user