Думаю хорошие программисты все идеалисты. Именно поэтому им все время не нравиться то, что они делают. Сегодня тебе кажется, что ты пишешь красивый код. А через месяц смотришь на свой тот же код, и думаешь: - "блин что за урод это писал, ну как так можно".))
На момент вывода в консоль массив пустой, но консоль устроена таким образом, что отображает всегда конечный результат, поэтому при разворачивании вы видите элементы, добавленные уже после вывода.
Никак. Но вы можете менять данные для подписки, например, если у вас есть канал:
App.User.{userId}
То вместо идентификатора пользователя, используйте какой нибудь хеш, который будет меняться раз в несколько часов. Таким образом, избежать несанкционированного подключения к комнате нельзя, но, это несколько затруднит процесс рандомного подключения к комнатам.
Для защиты от подключения с других сайтов проверяйте заголовок Origin. Его конечно можно подделать. Но обычные браузере не позволяют модифицировать этот заголовок из JavaScript
По собственной инициативе - не может.
Если получит мотивированный запрос (например, эти данные потребуются правоохранительным органам в рамках расследования преступления), то, разумеется, хостер будет обязан им эти данные предоставить. Для этого в законе прописаны соответствующие положения.