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

У меня есть одностраничное приложение, которое может иметь 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>

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

1 ответ

$.atmosphere.unsubscribe(request) отменяет все сокетное соединение (игнорирует параметр request). Видимо, это по замыслу. Чтобы отменить одну подписку, вызовите метод disconnect() для объекта подписки, который вы получаете от $.atmosphere.subscribe.

Другие вопросы по тегам