【发布时间】:2014-07-24 02:23:03
【问题描述】:
总的来说,我有以下工作流程:
- 用户请求具有特定标题的文章
- 客户端,Socket.io 发出事件并将标题作为数据传递
- 服务器端,节点向 API 发出 http 请求并收集有关该文章的相关信息
- 完成后,服务器将该信息发送给客户端。
由于 4 取决于 3,我的理解是它需要在回调中捕获以实现同步行为。这给了我这个:
io.on('connection', function(socket){
socket.on('need data', function(msg) {
getLinkBacks(msg, socket);
});
});
var getLinkBacks = function(title, socket) {
request.get(/* relevant url */, function(err, res, body) {
socket.emit("data", body);
});
};
socket.io 文档都没有讨论异步方法,传递套接字而不是回调函数感觉很奇怪,这更像是 Node-y。我是在使用糟糕的技术还是对问题的思考有误,或者这是发出异步方法响应的标准方式?
注意:我会将此放在 Code Review 上,但他们没有 Socket.IO 的标签,这让我觉得它更适合这里。
【问题讨论】:
标签: node.js socket.io node-request