Я новичок в атмосфере.Пока что мне удалось добавить атмосферу в мое существующее веб-приложение Tomcat 8 + Spring + Struts2.Я использовал текущую версию (атмосфера-среда выполнения 2.4.24, атмосфера-весна 2.4.20 и атмосфера.js 2.3.5).
Для какой-то простой страницы состояния мне уже удалось получить транспорт SSEработать.Используя Google Chrome или Mozilla Firefox, это работает очень хорошоЯ люблю это!После реализации этого я хотел проверить запасной вариант для браузеров, не способных к SSE (Internet Explorer и Edge).В журналах клиента я вижу, что атмосфера корректно обнаруживает отсутствие функции SSE и использует запасной вариант:
Server Side Events(SSE) is not supported, using request.fallbackTransport (long-polling)
atmosphere.js (3272,21)
Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
atmosphere.js (3272,21)
Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
atmosphere.js (3272,21)
Thu May 24 2018 08:54:28 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 4
atmosphere.js (3272,21)
Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 2
atmosphere.js (3272,21)
Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: Firing onOpen
atmosphere.js (3272,21)
Atmosphere connected using long-polling
utils.js (879,3)
Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: Firing onOpen
atmosphere.js (3272,21)
Thu May 24 2018 08:54:29 GMT+0200 (Mitteleuropäische Sommerzeit) Atmosphere: ajaxRequest.onreadystatechange, new state: 3
atmosphere.js (3272,21)
Но хотя я могу отладить серверную часть и увидеть сообщение, записываемое в AtmosphereResource noданные доходят до клиента.Вот как я инициализирую соединение с атмосферой на стороне клиента:
request = {
url: '<s:url value="/public/sse/ci" />',
contentType: "application/json",
method: 'POST',
logLevel: 'debug',
transport: 'sse',
reconnectInterval: 5000,
fallbackTransport: 'long-polling'
};
Может кто-нибудь дать мне подсказку о правильном направлении?
С уважением,
Себастьян