2015-03-02 5 views
0

У меня есть многопользовательское приложение, в которое я включил Spring AMQP для обмена сообщениями с моим сервером RabbitMQ, после тестирования разных пользователей я заметил, что одновременный вход в систему на другой учетной записи заставит других пользователей перехватывать сообщения, а не только но когда никто не регистрируется в приложении, все еще захватывает сообщения. Я понял, что мне, вероятно, нужно было установить vHost для каждого пользователя и убедиться, что AMQP не подключился автоматически ...Spring AMQP Несколько пользователей

, на котором мой вопрос приходит, как именно вы должны это делать?

Я использую конфигурационную версию JAVA и скрепил XML, чтобы упростить его, но на самом деле это не так. Я попытался закрыть и уничтожить SimpleMessageListener, используя RabbitUtil, чтобы попытаться закрыть соединение, когда пользователь выходит из системы, а затем попытайтесь использовать createConnection, когда они заходят в систему, но все это либо не работает, либо вызывает исключение. Я устанавливаю autoStartup на false, который, похоже, работает, но как только кто-то входит в систему, выходит из окна. И это только половина проблемы, если я могу сделать все, что я мог бы, возможно, выяснить vHosts, но это большая проблема этих двух, поскольку это делает это неуместным.

На данный момент мне интересно, может ли он использоваться одновременно с многопользовательским приложением. Любая помощь будет принята с благодарностью.

ответ

1

Вам необходимо предоставить гораздо больше информации, в том числе о том, что вы делаете с кроликом, и конфигурации.

Однако вам, скорее всего, не нужен vhost для пользователя, вам просто нужно использовать отдельные очереди для каждого пользователя - объявить их по требованию, маршрутизировать их с помощью динамических ключей маршрутизации; добавлять/удалять их из контейнера-слушателя и т. д. и т. д.

Смежные вопросы