Ещё проблема в том, что жалобы идут от простых пользователей, пользующихся нашим сервисом, самим отловить такой случай не удалось, но жало бы идут и неоднократно с высокой периодичностью, поэтому в достоверности информации нет. Сейчас вот думаю сделать логирование исключительных случаев, что бы выявить хоть какую-то зависимость.
Я уже анализировал их и не только в первых двух ссылках, я не из тех, что при первой же проблеме пошёл задавать вопрос в надежде, что кто-то сделает решение за меня, производился глубокий нанализ технологии и различных статей, демо чатов, в демо все прекрасно работает, но возьмите данный код, разверните на своём сервере, первым делом столкнётесь с проблемой соединения удаленных пользователей, которые сидять за NAT, нагуглив узнаете, что нужно использовать TURN сервер, погуглив поймёте, что нужно ставить свой или покупать т.к. бесплатный публичный не найдете. Поставите свой TURN сервер, соединения начнут происходить гораздо лучше. Но вот неожиданные обрывы, у нас по крайней мере, остаются при чем их очень сложно отловить, т.к. жалобы идут от простых пользователей, а самим с имитировать данную ситуацию не получается.
Наоборот !empty вернёт false, для несуществующих переменных. Просто в php зачастую переменные не объявляются заранее и надёжнее проверять именно через !empty, что бы не получить notice ошибку.
Функция imagerotate.
Но тут ещё либо по какой-то формуле рассчитывать положение картинки, кроме его угла.
Либо я бы сделал так, взял картинку со стрелкой такого размера, что бы её основание с низу как бы всегда в одной точке было фиксировано, пусть та область стрелки что находится ниже шкалы будет просто прозрачной визуально, но по высоте картинки она как бы есть и вращать картинку всегда относительно этой фиксированной точки.