Всегда храним промежуточный централизованный результат в памяти и при его изменении отправляем флаг "обновить состояние списка" всем клиентам синхронно (multicast).
Давным-давно был изобретен почтовый сервер....
.............. (долго рассказывать....)
MD5-CRAM (en.wikipedia.org/wiki/CRAM-MD5)
Заменяем MD5 на что-то более существенное. Например, HMAC
Таймеры - по-вкусу)
Если Вы используете UDP - значит вам доставка не важна.
Иначе - использовали бы TCP.
А так - стандарт телефонии)) Два порта: один - голос (UDP), другой - сигналка (TCP).
Вот по сигналке и гоняйте пинги, а UDP - отправили и забыли.
Mobile, Unity3D (C#) - есть видео-уроки на русском. Почти все платформы. Убъете сразу "тучу" зайцев. Разработчик на Unity3D получает сейчас очень прилично на фрилансе.
Web - Вам дольше намного познавать...