Обмен данными между Node.Js и приложением ASP.NET MVC

У меня есть существующий сложный веб-сайт, созданный с использованием ASP.NET MVC, включая серверную часть базы данных, уровень данных, а также веб-интерфейс слой. Перестройка этого веб-сайта на другом языке не является возможным вариантом.

В некоторых представлениях (на стороне клиента) есть некоторые элементы пользовательского интерфейса, которые выиграют от интерактивного взаимодействия, включающего как push, так и pull, поэтому вместо того, чтобы реализовывать какой-то настраиваемый длинный опрос или сервер веб-сокетов в asp.net, я ищу используйте node.js для Windows и Socket.io.

Моя проблема в том, что мне нужна двусторонняя связь между обоими приложениями. Каждый пользователь должен иметь возможность получать данные только после того, как он авторизован на веб-сайте ASP.NET, поэтому для этого мне сначала нужно связаться. Во-вторых, как только на веб-сайте ASP.NET происходят определенные события, я хочу немедленно отправить эти данные на сервер Node для трансляции определенным пользователям или группам пользователей. В-третьих, я хотел бы, чтобы любые данные, отправленные на сервер node.js, передавались на веб-сайт ASP.NET для обработки, поскольку именно здесь находится вся наша бизнес-логика. Единственная причина добавления Node.js - это возможность отправлять данные напрямую клиенту, я не хочу встраивать в него какую-либо бизнес-логику (или как можно меньше).

Я хотел бы знать, какой самый быстрый метод двусторонней push-связи между Node.Js и ASP.NET.Единственный хороший вариант, о котором я знаю до сих пор, - это создать специальный прослушиватель для определенного порта на сервере node.js и подключиться к нему, но мне было интересно, есть ли более элегантный или более эффективный метод? Я также знаю, что вы могли бы использовать базу данных между ними, но наверняка это нужно будет опросить, и это будет менее эффективно? Оба сервера будут работать на одном сервере в рамках проекта Visual Studio.

Большое спасибо за любую помощь, которую вы можете оказать.

8
задан tereško 12 November 2012 в 00:56
поделиться