Какую технологию рассылки групповых сообщений использовать?

Значения переменных MEDIA_ROOT и STATIC_ROOT в вашем settings.py имеют запятую. Конечная запятая превращает значение этих переменных из строки в кортеж.

MEDIA_ROOT = os.path.join(BASE_DIR, 'media'),  # This is a tuple
STATIC_ROOT = os.path.join(BASE_DIR, 'static'),  # So is this

Удаление задней запятой должно решить проблему.

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # This is now a string
STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # So is this
6
задан Gama11 9 February 2017 в 11:40
поделиться

5 ответов

Если Вы собираетесь быть выполнением Flash dev, Вы посмотрели на SmartfoxServer? Это имеет все, что Вы хотите, и имеет собственные клиентские библиотеки Flash. Я использовал в на проекте управлять 10-ми тысяч подключенных пользователей.

http://www.smartfoxserver.com/

1
ответ дан 17 December 2019 в 02:34
поделиться

Yurii,

RabbitMQ, Haxe и as3: http://geekrelief.wordpress.com/2008/12/15/hxamqp-amqp-with-haxe/

RabbitMQ, Ruby и ACLs: http://pastie.org/pastes/368315

Вы могли бы также хотеть посмотреть на использование Nanite с RabbitMQ для управления группами бэкенда: http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite

Вы говорите, что Вам нужно:

* broadcast messages by any client (1:N, N:N)
* (potentially) direct messages (1:1)

Можно легко сделать оба использования RabbitMQ. RabbitMQ поддерживает оба случая, 1:N pubsub и 1:1 обмен сообщениями, с 'прямыми' обменами.

Прямой обменный шаблон следующие:

Любой издатель (элемент группы) отправляет сообщение брокеру с 'клавишей маршрутизации', такой как "yurii". RabbitMQ соответствует этому ключу привязке подписки в таблице маршрутизации (иначе "обмен") для Вас. Каждая привязка представляет подписку очередью, выражая интерес к сообщениям с данной клавишей маршрутизации. Когда маршрутизация и обязательное соответствие ключей, сообщение затем направляется очередям для последующего потребления клиентами (элементы группы). Это работает на 1:N и 1:1 случаи; с N:N, основывающимся 1:N.

Введение в модель маршрутизации: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

Общее введение: http://google-ukdev.blogspot.com/2008/09/rabbitmq-tech-talk-at-google-london.html

Вы также требуете:

* (important) authenticate/authorize clients with my own backend (say, through some kind of HTTP API)

См. код ACLs для этого (ссылка выше). Существует также интерфейс HTTP к RabbitMQ, но мы еще не объединили фронтэнд HTTP с кодом ACL. Это не должно сдерживать Вас все же. Придите к rabbitmq-обсуждать списку, где об этой теме говорили недавно.

Вы также требуете:

* create groups (by some backend process)
* to be able to kick specific clients by backend process (or server plugin)

Я предлагаю смотреть на то, как инструменты как Nanite и Workling делают это. Создание группы обычно не является частью системы обмена сообщениями, вместо этого, в RabbitMQ, Вы создаете шаблоны маршрутизации с помощью подписок. Можно ударить определенные клиенты путем отправки сообщений им тем, какой бы ни ключ они раньше связывали их использующую очередь с обменом.

Надеюсь, это поможет!

alexis

3
ответ дан 17 December 2019 в 02:34
поделиться

Хорошо коммуникация группы является немного отличающимся зверем, чем простой обмен сообщениями / организация очередей.

Большинство систем связи группы является коммерческим, но существует два (что я знаю о), открытый исходный код / свободный, можно смотреть на:

Оба из них могли бы быть жесткими для нахождения привязки Ruby все же. Распространение и вероятно OpenAIS, просматривают клиенты, как доверяется, таким образом, клиент на базе браузера не имеет смысла. У Вас должны были бы быть свои фронтенды браузера, говорят с клиентом (клиентами) группы на бэкенде.

1
ответ дан 17 December 2019 в 02:34
поделиться

Мы использовали ActiveMQ. Наш поставщик, который предоставляет нашу систему HR, использует Ruby/ActiveMQ, чтобы широковещательно передать и получить обновления.

http://activemq.apache.org/cross-language-clients.html

1
ответ дан 17 December 2019 в 02:34
поделиться

Другими брокерами сообщений с открытым исходным кодом, поддерживающими протокол Stomp, являются OpenMQ, который включен в GlassFish V3 и GlassFish 2.1.1, но также работает автономно, и вскоре брокер сообщений JBoss, HornetQ V2.1 . OpenMQ поддерживает временные очереди, которые полезны для связи в стиле RPC, но ActiveMQ также предлагает некоторые интересные функции в адаптере Stomp.

0
ответ дан 17 December 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: