Атмосфера - изолируйте несколько подписок на одной странице

У меня есть одностраничное приложение, которое может иметь 1..n атмосферных подписок на тему (подписка обычно привязана к компоненту, который пользователь добавляет на экран). Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю отписку по одному запросу, он отписывается от ВСЕХ запросов. Вы можете увидеть пример внешнего интерфейса по адресу http://pastebin.com/c113bCNY . Я могу успешно установить оба соединения, и оба получают обновления сообщений независимо, но когда я вызываю $.atmosphere.unsubscribe(requestOne); Событие onClose срабатывает для обоих, и я могу подтвердить, что сервер также закрывает обе подписки.

На стороне сервера я использую MeteorServlet в среде Spring MVC. (см. http://pastebin.com/2Ub83LdZ для соответствующих частей) Есть ли что-то еще, что мне нужно сделать, чтобы изолировать две подписки?

Версии:

jQuery.atmosphere = { version: "2.2.13-jquery"}

<dependency>
    <groupId>org.atmosphere</groupId>
    <artifactId>atmosphere-runtime</artifactId>
    <version>2.3.5</version>
</dependency>

Заранее спасибо.


person John P    schedule 09.10.2015    source источник


Ответы (1)


$.atmosphere.unsubscribe(request) ДЕЙСТВИТЕЛЬНО отменяет все подключение к сокету (игнорирует параметр запроса). Видимо так задумано. Чтобы отменить одну подписку, вызовите метод disconnect() для объекта подписки, который вы получаете из $.atmosphere.subscribe.

person John P    schedule 09.10.2015