Товарищи, вставлю свои пять копеек:
У LocalConnection есть особенность - лимит на "соединения", что по-сути есть выделение памяти на объединённые "ячейки" памяти. Лимит этот от машины к машине различен. Но можно определить переполнение группы. Группа - это все екземпляры LocalConnection, единожды пытавшиеся подключиться к одному каналу (или создать его). Определяется двойной проверкой, e.g.:
Код AS1/AS2:
var uniqueness:Boolean;
try
{
new LocalConnection().connect("gameInstanceControl");
uniqueness = true;
}
catch(e:Error)
{
try
{
new LocalConnection().connect("gameInstanceControl");
// вот тут однозначно переполнение, а значет канал уже занят
uniqueness = false;
}
catch(e:Error)
{
// переполнения группы нет, уникальность подтверждена
uniqueness = true;
}
}
П.с.: средний лимит, судя по моим тестам, примерно 7-8 пиров на группу.
Прошу простить такую терминологию. Я написал большущую комплексную работу, в состав которой входит и эта метода, но всё для компании и под грифом секретно.
И да, лучший способ проверки - комбинация этого способа и SO, но с SO надо ещё осторожнее работать.
Добавлено через 2 минуты
Да, про использование SO: в нём удобно хранить имя канала и даты последней его генерации и забора.
|