Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
21 / 21 / 19
Регистрация: 22.03.2013
Сообщений: 115
1

Ожидание ответа от сервера

02.03.2017, 18:29. Показов 2303. Ответов 6

Author24 — интернет-сервис помощи студентам
Клиент1 шлет серверу запрос, в котором содержатся координаты. Координаты заносятся в БД на поле.
Клиент2 шлет серверу тот же запрос, но с другими координатами, они тоже заносятся в поле.

Задача сделать так, чтобы клиент1 после отправки координат ждал в ответ координаты, которые поставит клиент2, и наоборот.

Суть вопроса - можно ли оставить висеть функцию в ожидании ответа, например в цикле с булевой переменной, которая равна false пока второй клиент не отошлет координаты, не разорвется ли соединение по таймауту, если разницу во времени составляет больше 20 секунд. Или вообще лучше делать запросы и просто забирать измененное состояние поля с сервера?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2017, 18:29
Ответы с готовыми решениями:

Реализовать ожидание ответа от USB-устройства
Уважаемые. Существует УСБ устройство. К нему написано приложение на С#. приложение посылает...

SerialPort: Ожидание События или получение ответа из потока чтения флуда байтов
Имеется: OpenPort() - открывает порт и любимый Поток readport() - Поток который считывает всё,...

Чтение ответа от сервера
В общем регулярные выражения тут врятли помогут так как мы имеем дело не с JSON, а с xml. Нужно...

Как подождать ответа от сервера?
Есть пост запрос предположим он логинится на страницу Вконтакте Так вот как подождать чтоб запрос...

6
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
02.03.2017, 19:49 2
ProTreo, если серверный процесс работает постоянно (служба хостится в нормальном процессе, а не в IIS), то самое простое - определить контракт обратного вызова и оповещать всех клиентов об получении к-либо данных при посылке любого другого из них.
1
21 / 21 / 19
Регистрация: 22.03.2013
Сообщений: 115
02.03.2017, 21:16  [ТС] 3
insite2012, служба хостится в нормальном процессе, а не в IIS, а можно поподробнее? Я впервые делаю подобие бэкенда, до этого делал службу, которая отображается в services.msc, Сейчас билдится проект и сразу в iis 7.5. Можете рассказать о более продвинутом методе?
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
02.03.2017, 21:26 4
Цитата Сообщение от ProTreo Посмотреть сообщение
Можете рассказать о более продвинутом методе?
Могу. Но для начала поточнее скажите: как предполагается размещать саму WCF службу? Консоль, WinForm, Windows служба и т.п.
1
21 / 21 / 19
Регистрация: 22.03.2013
Сообщений: 115
02.03.2017, 21:31  [ТС] 5
insite2012, Если IIS не вариант, то я склоняюсь к службе
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
02.03.2017, 21:35 6
Лучший ответ Сообщение было отмечено ProTreo как решение

Решение

Цитата Сообщение от ProTreo Посмотреть сообщение
Если IIS не вариант, то я склоняюсь к службе
IIS вряд ли подойдет. Я читал, что его можно как-то настроить на постоянную работу, но сам не пробовал. Он по сути ориентирован на модель запрос-ответ: пришел запрос, создается домен приложения, в нем происходит работа, как работа закончена - домен выгружается.
А в вашем случае Windows-служба будет нормальным вариантом.
Тогда все просто - создаете WCF службу, ее размещаете в Windows-службе, которая будет стартовать автоматом при старте Windows, и работаете.
1
21 / 21 / 19
Регистрация: 22.03.2013
Сообщений: 115
09.03.2017, 15:01  [ТС] 7
insite2012, в продолжение темы, я перенес wcf службу в win службу, однако там нельзя использовать relative address для multiple site bindings. сейчас конфиг выглядит так

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
 
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="rest_webservice.ServiceBehavior"
        name="rest_webservice.Service">
        <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
          contract="rest_webservice.IService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/TTT/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="rest_webservice.ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
На роутере у меня проброшен 55555 порт на 80, я мог получить доступ к сервису, теперь я могу только зайти на него, но мне даже не выводит страницу, на которой показано как использовать svcutil, а также у меня на локалке настроен NAT hairpin, чтобы я мог получить доступ к веб-сервису по внешнему адресу из локалки. Под iis все работало, сейчас дома не работает.
В будущем мы хотим попробовать поставить это на виртуалку azure, соответственно вопрос: как должен выглядить этот файл конфигурации, а точнее адрес для обычного дедика?
Как должен выглядеть этот файл, чтобы получить доступ к сервису из инета.

Добавлено через 21 минуту
Забыл дописать слеш, при обращении, проблема исчерпана!
0
09.03.2017, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2017, 15:01
Помогаю со студенческими работами здесь

Обработка ответа от сервера api.GetEntityCont
Пока не понимаю как это обрабатывать,у меня есть апи к удаленному серверу и в одном из вариантов...

Renci.SshNet - вывод ответа сервера
Здравствуйте, Пишу программу, для упрощения работы с сервером. И столкнулся с проблемой, что не...

Бесперерывное получение ответа от сервера(Socket)
Собственно как настроить бесперерывное получение? на данный момент я получаю так: int bytesRec...

Организация проверки времени на получение ответа от прокси-сервера
Здравствуйте, товарищи-программисты. Программа занимается проверкой качества большого количества...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru