Лучший подход для отправки веб-сервиса Java клиенту C # - PullRequest
0 голосов
/ 19 мая 2018

Вот наша архитектура: JIRA webhook отправляет сообщения в службу REST Java Jersey при возникновении проблем.

Клиентское приложение C # регистрирует комбинацию имени пользователя / хост-машины с веб-сервисом Java, когда пользователь входит в систему.

Когда веб-служба получает сообщение от JIRA, она находит имя пользователя, которому назначен, и отправляет необходимые данные клиентскому приложению C # на хост-машинах, на которых пользователь вошел в систему.

Я подумал о паре подходов к решению веб-сервиса для клиентского сообщения.

Сначала я открываю TCP-порт на клиенте и заставляю службу отправлять каждое сообщение непосредственно ему.Это наиболее простой подход, но делает клиента немного тяжелым, поскольку он поддерживает список назначенных пользователем данных о билетах, которыми они могут затем манипулировать (подтверждать или удалять).

Другой обслуживает службумодель данных и клиент периодически запрашивает данные.Это делает клиент проще, но тогда мне нужно будет установить интервал опроса, чтобы получить данные, и добавить несколько методов POST для подтверждения и удаления данных из списка пользователя.

Я искал разные способы получитьклиент регистрирует канал в сервисе, например ServiceStackEvents, но я не вижу способа заставить это работать с клиентом C # и сервисом Java.Нечто подобное было бы идеально.Способ для службы посылать обратные вызовы или сообщения о событиях клиенту на основе пользовательского фильтра.

Если у кого-то есть предложения или какой-либо API, чтобы помочь с этим, пожалуйста, опубликуйте ссылку, чтобы я мог углубиться вЭто.Все POST работают без сбоев, я просто передаю данные клиентам, и я борюсь с лучшим подходом.

Спасибо!

1 Ответ

0 голосов
/ 19 мая 2018

Опрос клиентов не является ужасным решением.

Но если вам нужен брандмауэр и дуплексный протокол с поддержкой прокси, ознакомьтесь с WebSockets https://en.m.wikipedia.org/wiki/WebSocket.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...