jQuery <-> C ++ JSON通信
通过NGINX Web-Server,C ++仅事件驱动的jQuery之间的jQuery之间的通信。例如,这可以实现用于快速传感器数据传输的RESTFUL API。
这是因为缺乏轻量级的C ++通信。这是一个很小的助手,可以轻松地包含在任何C ++应用程序中,需要与需要交换实时数据的网页交谈。
与php一起工作,因为Nginx可以两者兼而有之!
先决条件
apt-get install libfcgi-dev
apt-get install libjsoncpp-dev
apt-get install nginx-core
安装
这是一个基于标题的库。所有代码都在json_fastcgi_web_api.h中。只是输入:
cmake .
sudo make install json_fastcgi_web_api.h
要在系统范围内安装标头,包括DIR。
Howto
您唯一需要的文件是:
json_fastcgi_web_api.h
文件json_fastcgi_web_api.h具有广泛的内线文档。它的doxygen生成的在线文档在这里:https://berndporr.github.io/fastcgi_json_cpp_api/
实现GET回调(服务器 – >客户端)
这是将JSON数据包发送到客户端(网站,电话应用等)的回调:
class GETCallback {
public:
/**
* Needs to return the JSON data sent to the web browser.
**/
virtual std::string getJSONString() = 0;
};
过载getJSONString()和返回JSON。推荐的生成JSON的方法是使用JSONCPP库,该库是所有主要Linux发行版的一部分。
实现后回调(客户端 – >服务器,可选)
该处理程序从网站上从JQuery Post命令接收JSON,例如用户按下按钮。实施回调:
class POSTCallback {
public:
/**
* Receives the data from the web browser in JSON format.
**/
virtual void postString(std::string arg) = 0;
};
过载postString(std::string arg)具有解码接收到的POST数据的函数。
开始通信
开始方法将作为参数get回调,后回调和fastcgi套接字的路径:
JSONCGIHandler jsoncgihandler;
jsoncgihandler.start(GETCallback* argGetCallback,
POSTCallback* argPostCallback = nullptr,
const char socketpath[] = \"/tmp/fastcgisocket\");
停止通信
只需致电jsoncgihandler.stop()关闭通信即可。
示例代码
subdir fake_sensor_demo包含一个demo_sensor_server ,该demo_sensor_server伪造温度传感器及其读数在Web浏览器中绘制。 NGINX配置文件和网站在website目录中。
Bernd Porr,mail@berndporr.me.uk
动态DNS
如果您没有静态IP地址,则可以使用“害怕”动态DNS服务:免费DNS
