FastCGI C ++ / Nginx和C ++应用程序之间的IPC

时间:2015-05-27 18:49:25

标签: c++ nginx ipc fastcgi fastcgi++

我正在尝试创建一个网关,该网关提供RESTful接口,用于向通过蓝牙低功耗(BLE)进行通信的设备发送/接收消息。基本上它将GATT转换为HTTP,反之亦然。

基本架构如下:

BLE Dongle连接到Linux计算机(例如Raspberry Pi)C程序打开与BLE Dongle的串行连接以发送/接收/处理消息。它使用TCP / IP套接字通过IPC接收来自C ++应用程序的请求,并使用此套接字将来自BLE设备(fe传感器)的回复转发到C ++应用程序(作为每个连接的BLE加密狗的多线程服务器)。

C ++应用程序保存此信息(例如发现的设备,连接的设备及其数据),并实现一个接口来控制基本的蓝牙低功耗功能,如Discovery,Connect ..等。

客户端可以将HTTP请求(GET / POST)发送到使用FastCGI的Nginx Web服务器。我想在此FastCGI应用程序中解析请求,然后与C ++应用程序通信以执行命令

f.e。客户端打开URI xyz / discover发送GET请求。 FastCGI应用程序解析此请求并调用C ++应用程序的Discover功能以启动蓝牙低功耗发现。

我的问题是如何在C ++应用程序和FastCGI C ++应用程序之间进行最佳通信。

我的想法:

  • C ++应用程序分叉一个新的子进程执行fcgi-spawn(我的fcgi应用程序的路径作为参数)。然后创建两个管道,用于父母和孩子之间的全双工通信
  • 在两个进程之间使用命名管道
  • 在我的C ++应用程序中集成FastCGI功能是一个好主意吗? C ++应用程序运行多个线程:一个用于在连接新的加密狗时接受新的TCP连接。它为每个新的Dongle启动一个Thread。我可以创建另一个负责解析FastCGI请求的线程吗?

因为我从未真正使用过FastCGI和nginx,所以我只是在学习。一些意见,我将不胜感激。谢谢!

0 个答案:

没有答案