WebSockets - правильный подход для создания каналов и передачи данных
У меня есть сценарий, при котором я хочу сообщить пользователям моего сайта, что кто-то прокомментировал статью, которую они также прокомментировали. Это очень похоже на то, как ТАК уведомляет меня, когда кто-то отвечает на вопрос!
На стороне сервера я сохраняю комментарий, а затем просматриваю всех пользователей, которые прокомментировали одну и ту же статью. Затем я транслирую (я использую Атмосферу):
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
for(User u : users){
// channel name, message
pushContext.push("/user_" + u.id, "someone commented! blah blah");
}
«Канал», на который я вещаю, является «собственным» каналом пользователя, так как я не хочу, чтобы каждый пользователь был уведомлен. Я использую идентификатор пользователя в названии канала, чтобы добиться этого.
Правильный ли это способ гарантировать, что только соответствующие пользователи будут получать уведомления?
Я также хочу сделать еще две вещи:
Только подтолкнуть пользователей, которым я верю, все еще онлайн. Если они не в сети, то это пустая трата ресурсов на них.Зашифруйте сообщение, потому что в противном случае любой мог бы прослушать мои сообщения, если бы он знал мой идентификатор пользователя.Есть ли что-то еще, что мне нужно подумать?