我爲跛腳冠軍道歉,但經過15分鐘努力尋找更好的冠軍後,我放棄了。
想象以下場景:實現「即時」客戶端 - 服務器通信的最佳解決方案?
- C#編寫的桌面應用
A
監聽用戶講話和WAV
文件分割成塊(byte[]
)轉換爲語音發生 A
則需要發送這些數據塊到服務器B
(我們的Windows服務器)當語音仍在發生時- 服務器
B
等待所有的塊到達完成),然後轉向並向服務器C
(第三方語音到文本識別引擎)發送一個HTTP POST,其中整個byte[]
表示語音 - 服務器
B
獲取響應,並對結果字符串進行一些處理,然後發回一個對象回到桌面應用A
(可能是一個字符串或圖像)
的要求之一(粗體語句)的是,爲了提高效率,A
不應等待完成演講在開始發送塊到B
之前。我們整合了一個使用TCP套接字的測試解決方案(似乎工作正常),但由於我們對套接字的使用經驗很少,所以我們有點不情願(不確定所有限制)。
有沒有更好的建議來達到我們的目的?
PS:另一項要求,仍需要進一步證實,可能是A
在「非託管」 C++這可能會阻止任何純粹的.NET實現寫入
此外,將直接發送到C無需等待,那麼C將所有塊中發送給B. – 3aw5TZetdf
感謝您的答覆馬修。我不認爲這兩個建議都可行,因爲我不控制C,而只控制A和B.因此,我不能像C#中那樣爲我做任何「東西」,或者讓C轉發響應如#1中所建議的那樣。如果我誤解了你的答案,請讓我知道! :) – BlazingFrog
啊,我明白了。如果你不能讓C轉發對B的迴應,那麼你將如何在你的場景中得到迴應?它表示B向服務器C發出HTTP POST請求...服務器B獲取響應。 – 3aw5TZetdf