我正在使用 Socket.IO 让客户端网页从我的 Node.JS 服务器动态获取数据。在服务器端,我使用 zeromq 套接字库(REQ/REP 结构,参见 zguide 的 rrclient.js 示例)将请求转发到 Python 后端。
但是,由于我的服务器充当 socket.io 服务器,我必须按如下方式包装我的响应,以便将其发送回特定的客户端:
socket.on('app_request',function(appRequest){
//route this request to the backend.
var results = fetch_data(appRequest);
//return it to the client
socket.emit('app_results',results);
});
因此 fetch_data 函数使用 zmq 套接字 (socket.send) 将请求推送到服务器。
但是 Node ZMQ 套接字使用 socket.on('message',function(){}); 响应请求。侦听器,实际上并没有返回任何东西。
如何使用 socket.on('message',function(){}); 向发起 socket.send() 请求的特定函数返回一个值?
换句话说,如何让客户端的 socket.io 请求让 Node.JS 使用 ZMQ 从 python 后端获取相关数据,然后将其返回给 socket.io 客户端?(当然是以非阻塞方式)