Для проекта уведомления хотелось бы вывести уведомления о событиях. Это такие вещи, как логин, изменение профиля и т.д., А также отображение соответствующего клиента. Я хотел бы обсудить некоторые идеи по их объединению и получить рекомендации по наилучшему подходу.
Я заметил здесь, что изменения, внесенные в CouchDB, могут быть обнаружены с помощью потока _changes, подхваченного Node, а также удары процесса выкл. Я хотел бы реализовать что-то вроде этого (я использую SQL Server, но точка входа на этом уровне может оказаться не лучшим решением).
Вместо того, чтобы следовать примеру CouchDB (обнаруживая события на базе базы данных, я думаю, что это просто усложняет ситуацию, так как мы заинтересованы в событиях клиента), я думал, что когда происходит событие, такое как логин пользователя, сообщение отправляется на сервер Node с некоторыми сведениями о событии (запрос RESTful?). Затем это сообщение обрабатывается и передается всем подключенным клиентам; соответствующий клиент отображает уведомление.
Предлагаемая экосистема:
- .Net 4.0
- IIS
- IISNode
- Socket.IO
- Node.JS
- SQL Server 2008
Это будет построено поверх существующего проекта с использованием инфраструктуры .Net(IIS и т.д.). Многие браузеры клиентов не поддерживают веб-сокеты, поэтому использование Socket.IO - хороший вариант (резервная поддержка). Однако из того, что я вижу, Socket.IO по-прежнему поддерживает только длительный опрос через IISNode (что на самом деле не проблема).
Опция должна заключаться в том, чтобы разоблачить конечную точку Socket.IO/ Node для всех клиентов, чтобы уведомления на основе клиента могли быть отправлены через JS на сервер Node, который передает это сообщение. (следует основным примерам chat-server/client/server).
В качестве альтернативы можно использовать конечную точку IIS, но она может поддерживать только длительный опрос (через Socket.IO). Это предложило бы некоторую дополнительную фоновую обработку .Net, но может быть чрезмерно усложнять архитектуру.
Есть ли уведомление о событиях на основе SQL Server для Node?
Каким будет лучший подход?
Если я не получил правильную конфигурацию экосистемы, пожалуйста, уточните.
Спасибо.