我正在开发一个 node.js 应用程序,该应用程序试图从 socket.io 客户端获取数据以填充对来自另一个客户端的 POST 请求的响应。就像是...
- 来自客户端 A 的 POST http 请求
- 服务器通过 socket.io 从客户端 B 请求数据
- 客户端 B 通过套接字向服务器返回数据
- 服务器响应客户端 A
发出初始 POST 请求的客户端 A 是一个 Web 服务(Plivo/plivo-node),因此我无法更改它访问服务器的方式。
在 POST 请求上调用的节点代码如下所示...
app.handlePlivoRequest = function (req, res) {
// create Plivo response object
var r = plivo.Response();
// set listener for client response
client.socket.on('callResponse', function(msg){
// add msg data from client to the Plivo response
r.addSpeak(msg);
});
// forward request to socket client
client.socket.emit('call', req.body );
// render response as XML for Plivo
return r.toXML();
}
我遇到的问题是handlePlivoRequest 无需等待客户端的响应即可返回。
谁能帮助我如何重新考虑这个以等待套接字响应?
谢谢!