我为跛脚冠军道歉,但经过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