Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: busybox  
Дата: 24.05.17 23:16
Оценка:
Всем привет.

Есть консольное приложение С#, которое подключено к некоторому оборудованию, и есть веб-сайт, написанный на MVC 5, на котором нужно получать нотификации, когда консольное приложение обнаруживает проблемы с оборудованием.

Задача — нужно каким-то образом органинзовать проброс нотификаций от консольного приложения на веб-сайт.

В идеала сделать так:

1. консольное приложение поднимает серверный сокет TcpListener
2. веб-приложение подключается с помощью TcpClient и держит TCP-соединение открытым
3. когда возникает проблема с оборудованием, консольное приложение через открытое TCP-соединение нотифицирует серверную часть веб-сайта
4. для нотификации клиентской части веб-сайта можно использовать веб-сокет


Два вопроса:

I. может ли asp.net держать открытым TCP-соединение для решения п.2,3?
II. есть ли альтернатива веб-сокетам для решения п.4?

Спасибо.
mvc tcp/ip websocket
Re: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.05.17 23:25
Оценка: +1
Здравствуйте, busybox, Вы писали:

B>Задача — нужно каким-то образом органинзовать проброс нотификаций от консольного приложения на веб-сайт.


Смотри signalr
Re[2]: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: busybox  
Дата: 24.05.17 23:31
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, busybox, Вы писали:


B>>Задача — нужно каким-то образом органинзовать проброс нотификаций от консольного приложения на веб-сайт.


G>Смотри signalr


Насколько понимаю, это решит только часть задачи — взаимодействие между бэкэндном и фронтэндом сайта. Мне нужно, чтоб бэкэнд держал постоянное подключение к консольному приложению. SignalR тут тоже может помочь?
Re: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: СвободуАнжелеДевис СССР  
Дата: 25.05.17 04:48
Оценка: +2
На сайте отобразить сообщение можно при помощи SignalR.

Нотифицировать сайт, из консольного прилодения можно разными вариантами.
Самый простой — дёрнуть на сайте специально предусмотренный url.
Либо вариации на тему akka.net, msmq/active mq.
Нет времени на раскачку!
Re: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 25.05.17 05:26
Оценка: +3
Здравствуйте, busybox, Вы писали:

B>I. может ли asp.net держать открытым TCP-соединение для решения п.2,3?


Зачем постоянное соединение? Чем не подходит вариант с обычным HTTP-запросом? Он же на порядок проще.

B>II. есть ли альтернатива веб-сокетам для решения п.4?


Я б таки рекомендовал веб-сокеты. Оно довольно простое в реализации. Там только с надёжностью не очень понятно — я так понимаю, если клиент пропустил сообщение (сеть пропала на секунду), то на уровне протокола это никак понять нельзя. Нужно городить что-то своё, какую-то систему подтверждения получения сообщений со стороны клиента.
С уважением, Artem Korneev.
Re[3]: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.05.17 12:29
Оценка:
Здравствуйте, busybox, Вы писали:

B>>>Задача — нужно каким-то образом органинзовать проброс нотификаций от консольного приложения на веб-сайт.

G>>Смотри signalr
B>Насколько понимаю, это решит только часть задачи — взаимодействие между бэкэндном и фронтэндом сайта. Мне нужно, чтоб бэкэнд держал постоянное подключение к консольному приложению. SignalR тут тоже может помочь?
Неправильно понимаешь. Ты делаешь SignalR хаб. Подключаешься к нему из браузера и из консольного приложения. Консолька дергает метод, который шлет всем клиентам оповещения.
Re[4]: Передача нотификаций из консольного приложения на сайт ASP.NET MVC
От: busybox  
Дата: 25.05.17 14:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, busybox, Вы писали:


B>>>>Задача — нужно каким-то образом органинзовать проброс нотификаций от консольного приложения на веб-сайт.

G>>>Смотри signalr
B>>Насколько понимаю, это решит только часть задачи — взаимодействие между бэкэндном и фронтэндом сайта. Мне нужно, чтоб бэкэнд держал постоянное подключение к консольному приложению. SignalR тут тоже может помочь?
G>Неправильно понимаешь. Ты делаешь SignalR хаб. Подключаешься к нему из браузера и из консольного приложения. Консолька дергает метод, который шлет всем клиентам оповещения.

Спасибо за наводку. Изучаю SignalR хабы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.