以下是我正在努力实现的流程:
1)用户将音频文件上传到server1
2) Server1接收该音频文件并将其发送给不同域中的server2
3) Server2将音频文件转换为文本
4) Server2用文本响应server1
5) Server1向用户显示文本
在server2上完成语音到文本的转换。我被困在发送音频文件和等待响应。我知道如何使用GET发送请求,但我不认为我可以在音频文件中使用它。
如何使用node.js向另一台服务器发送音频文件?
我对node.js非常陌生,所以任何帮助都将不胜感激。谢谢。
更新:
Server2使用REST并期望文件被发布。
发布于 2012-01-10 18:57:21
这完全取决于远程服务器希望如何接收音频文件。假设它具有某种RESTful web服务接口,可以将文件内容发布到某个URL,那么您可能可以这样做:
fs.readFile('/path/to/my/audiofile.wav', function (err, data) {
if (err) throw err;
var options = {
host: 'remotehost.com',
path: '/upload/wav',
method: 'POST',
headers: { 'Content-Type': 'audio/wav' }
};
var req = http.request(options, function(res) {
// Handle a successful response here...
});
req.on('error', function(e) {
// Handle an error response here...
});
// Write the audio data in the request body.
req.write(data);
req.end();
});同样,这完全取决于服务器希望您如何发送数据。它可能期望一个完全不同的协议(或方法或路径)、身份验证、编码或任何数量的细节,这将完全改变我的示例答案的可行性。
发布于 2012-01-12 15:41:08
这是一个很好的消息传递用例。我建议这样的流动:
A将通道id返回给B实际上是一个侦听队列的池(可以是多个工作人员)。
H 218浏览器获取消息通知并显示给用户服务器A和服务器B之间直接HTTP通信的一些缺点是:
服务器A和服务器B的API和端点之间的
紧密耦合。服务器A和服务器B如何被授予相互通信的权限?如果服务器B需要被删除一段时间,会发生什么?对于消息队列,作业会累积,直到服务器B备份,然后继续。在HTTP通信中,如果需要添加更多的服务器B,则直到服务器B resumes.What才会出现故障?现在,您正在处理HTTP反向代理、负载平衡等问题,而为了维护而关闭服务器B的问题就更加复杂了。https://stackoverflow.com/questions/8808423
复制相似问题