【问题标题】:Asynchronous server with NodeJs and boost::asio combination具有 NodeJs 和 boost::asio 组合的异步服务器
【发布时间】:2017-01-02 23:12:27
【问题描述】:

我已经为某些服务器(用 C++ 编写)构建了一个 REST API 功能,并且针对一些技术限制,我为此使用了 NodeJsC++ boost::asio 库。工作原理如下图所示

基本上NodeJs 正在等待 HTTP 请求。当NodeJs 收到一个请求时,它会创建一个简单的字符串,通过net.connect() 打开一个新的套接字连接并发送到主C++ 服务器。 C++ 服务器获取该字符串,执行一些工作并通过套接字发回响应字符串。最后,NodeJs 在得到 C++ 服务器的响应后,从那里做出 HTTP 响应并发送回客户端,然后调用 net.destroy() 来关闭套接字。

所以NodeJs 模块是外部世界客户端的服务器,但它也是 C++ 服务器的客户端,即NodeJs 模块是某种代理服务器。

目前我使用boost::asio 的同步模型,一切正常,但是服务器同时只处理一个请求!但现在我想切换到异步模型以同时支持多个请求。因此,我有一个问题,如果我切换到boost::asio 的异步模型(使用async_acceptasync_readasync_write...)这是否允许 C++ 服务器同时处理多个请求,如果它有一个实际的客户,即NodeJs

我对@9​​87654339@ 和Javascript 很陌生。感谢您的宝贵时间!

【问题讨论】:

    标签: node.js sockets asynchronous boost server


    【解决方案1】:

    我决定亲自动手并尝试切换到boost::asio 的异步模型。

    现在一切正常,C++ 服务器同时处理多个请求。

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多