Прошу прощения за хроническое название, но через 15 минут, пытаясь найти лучшего, я просто сдался.
Представьте себе следующий сценарий:Лучшее решение для реализации «на лету» клиент-серверной связи?
- Desktop приложение
A
, написанное на C# слушает пользователь говорить и преобразуетWAV
файла на куски (byte[]
) как речь происходит A
затем необходимо отправить эти куски к серверуB
(наш сервер Windows) , поскольку речь все еще происходит- Сервер
B
ожидает, что все куски поступят (после выступления завершение), затем оборачивается и делает один HTTP POST на сервереC
(сторонний речевой движок речевого текста) со всемbyte[]
представлением речи - Сервер
B
получает ответ и выполняет некоторую работу с результирующей строкой, затем отправляет обратно объект обратно в настольное приложениеA
(может быть строкой или изображение)
Одним из требований (заявлений выделены жирным шрифтом) является то, что для повышения эффективности, A
не должны ждать, пока речь будет завершена перед началом отправки кусков до B
.
Мы собрали тестовое решение, которое использует TCP-сокеты (похоже, все в порядке), но поскольку у нас очень мало опыта работы с сокетами, мы немного неохотно (не уверены обо всех ограничениях).
Есть ли лучшее предложение для достижения нашей цели?
PS: Еще одно требование, что еще должно быть подтверждено, может быть, что A
быть записаны в «неуправляемый» C++, которые, вероятно, предотвратить любые чисто .NET реализации
Кроме того, было бы отправить его прямо на C, не дожидаясь, то C будет посылать все куски в B. – 3aw5TZetdf
Спасибо за ваш ответ Мэтью. Я не думаю, что любое предложение будет работать, потому что я не контролирую C, только из A и B. Поэтому я не могу C делать какие-либо «вещи» для меня, как предлагалось в № 2, или иметь C вперед ответ к B, как предложено в № 1. Пожалуйста, дайте мне знать, если я неправильно понял ваш ответ! :) – BlazingFrog
Ах, я вижу. Если у вас нет ответа C на ответ B, то как вы получите ответ в своем сценарии? Он говорит, что B делает HTTP POST-запрос серверу C ... Сервер B получает ответ. – 3aw5TZetdf