首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用node.js向另一个域发送附加音频文件的请求?

如何使用node.js向另一个域发送附加音频文件的请求?
EN

Stack Overflow用户
提问于 2012-01-10 18:24:08
回答 2查看 2.6K关注 0票数 0

以下是我正在努力实现的流程:

1)用户将音频文件上传到server1

2) Server1接收该音频文件并将其发送给不同域中的server2

3) Server2将音频文件转换为文本

4) Server2用文本响应server1

5) Server1向用户显示文本

在server2上完成语音到文本的转换。我被困在发送音频文件和等待响应。我知道如何使用GET发送请求,但我不认为我可以在音频文件中使用它。

如何使用node.js向另一台服务器发送音频文件?

我对node.js非常陌生,所以任何帮助都将不胜感激。谢谢。

更新:

Server2使用REST并期望文件被发布。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-10 18:57:21

这完全取决于远程服务器希望如何接收音频文件。假设它具有某种RESTful web服务接口,可以将文件内容发布到某个URL,那么您可能可以这样做:

代码语言:javascript
复制
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();
});

同样,这完全取决于服务器希望您如何发送数据。它可能期望一个完全不同的协议(或方法或路径)、身份验证、编码或任何数量的细节,这将完全改变我的示例答案的可行性。

票数 2
EN

Stack Overflow用户

发布于 2012-01-12 15:41:08

这是一个很好的消息传递用例。我建议这样的流动:

  • 用户将文件从浏览器发布到服务器A。
  • 服务器A存储文件。
  • Server A创建作业以将文件转换为文本并将其发送到作业队列。作业包含文件的位置。Pusher).
  • Server
  • 服务器A创建一个通道(例如,PubNub或

A将通道id返回给B实际上是一个侦听队列的池(可以是多个工作人员)。

  • 池工作人员将作业从队列中取出并处理。池工作人员
  • 保存文本文件。池工作人员
  • 向频道Id发送消息,其中包含文本文件的位置和/或正文。H 218
  • 浏览器获取消息通知并显示给用户

服务器A和服务器B之间直接HTTP通信的一些缺点是:

服务器A和服务器B的API和端点之间的

  • 紧密耦合。服务器A和服务器B如何被授予相互通信的权限?如果服务器B需要被删除一段时间,
  • 会发生什么?对于消息队列,作业会累积,直到服务器B备份,然后继续。在HTTP通信中,如果需要添加更多的服务器B,则直到服务器B resumes.
  • What才会出现故障?现在,您正在处理HTTP反向代理、负载平衡等问题,而为了维护而关闭服务器B的问题就更加复杂了。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8808423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档