Трансляция только одному клиенту с Атмосферой
Как я могу транслировать сообщения только от одного клиента другому с помощью Атмосферы (Метеор)? В настоящее время у меня есть эта реализация, основанная на руководстве по метеору
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
Meteor.build(req).addListener(new AtmosphereResourceEventListenerAdapter());
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
String body = req.getReader().readLine().trim();
//some DAO lookups - here I would like to say I want to broadcast only to concrete client
BroadcasterFactory.getDefault().lookup(DefaultBroadcaster.class, "/*").broadcast(UserDAO.getInstance().getUser(name));
}
Я знаю, что это может быть глупый вопрос, но я не нашел никакой информации по этой теме, поэтому я спрашиваю здесь:) Спасибо за любые советы.
3 ответа
Решение
Салют,
Атмосфера FAQ: https://github.com/Atmosphere/atmosphere/wiki/Creating-private-channel-of-communication-between-Browsers
- Жанфрансуа
Я верю в другое решение: для адресации только одного клиента вам не нужно транслировать, вы можете просто сделать это:
try
{
r.getResponse().write(message);
}
catch(IllegalStateException e)
{
logger.error("Could not send message through atmosphere " + userId);
}
где r - ресурс, который вы можете запомнить в своей программе.
BroadcasterFactory.getDefault().lookup(atmosphereResource.uuid()).broadcast('something');