Я новичок ie с фреймворком Atmosphere. Я сделал это по http://async-io.org/tutorial.html. Но я не знаю, как разделить соединение между двумя серверами. Моя цель заключается в том, что с моим приложением, запущенным на 2 серверах A и B, если клиент C подключается к серверу A, я могу отправить сообщение sh с сервера B на клиент C. В листинге 7 в руководствах просто добавлен RedisBroadcaster:
@AtmosphereHandlerService(path = "/chat",
broadcasterCache = UUIDBroadcasterCache.class,
broadcaster = RedisBroadcaster.class,
interceptors = { AtmosphereResourceLifecycleInterceptor.class,
BroadcastOnPostAtmosphereInterceptor.class,
TrackMessageSizeInterceptor.class,
HeartbeatInterceptor.class
})
public class ChatRoom extends OnMessage<String> {
Но если я хочу отвечать на сообщение асинхронно, я не уверен, что ниже мой код в порядке. Мой код:
ServletContext servletContext = ServletContextFactory.getDefault().getServletContext();
BroadcasterFactory broadcasterFactory = (BroadcasterFactory) servletContext.getAttribute(BroadcasterFactory.class.getName());
Collection<Broadcaster> I = broadcasterFactory.lookupAll();
for (Broadcaster b : I) {
for (AtmosphereResource r : b.getAtmosphereResources()) {
if (r.uuid().equalsIgnoreCase(resourceUuid)) {
resource = r;
}
}
}
resource.getResponse().write("my message");
Если у вас есть пример кода решения, поделитесь мной. Спасибо за помощь.