Skip to content

Shiny-Project/Shiny-CppClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SHINY C++ CLIENT SDK

这是Shiny的一个C++版客户端,用于从Shiny服务端接收推送。

目前仅在win10+msvc14.1上通过测试,其他系统和编译器未经测试。如有问题,请提issue。

安装准备

  1. CMake(最新版)
  2. Boost(Win请去下pre-built,其他系统我相信你们会自己搞定哒!)
  3. Socket.io C++ Client (下Release版本,最新master源码有坑)
  4. 腾讯神器(划掉)RapidJSON
  5. WebSocket++
  6. OpenSSL-devel (请下载64位,非light的开发者用版本,非Windows用户你可以自己找到的,一般也就是apt install openssl-dev一下)(Optional,如果你需要https/wss则需要这个库)

Socket.io C++ Clinet里面的lib目录里两个子目录是空的,简单的把下载好的RapidJSON和WebSocket++解压后直接放进去就行了。注意目录名不要带版本号。

以下两个文件能找到就说明你放置正确:

./lib/rapidjson/include/rapidjson/document.h
./lib/websocketpp/websocketpp/client.hpp

这两个库都是Header Only的,所以不需要编译。

编译前你需要知道的坑

  1. WebSocket++的SSL版本用了一个最新版OpenSSL已经停用了的宏,这导致如果你用的OpenSSL比较新,就会编译失败。可以参考这个补丁对代码进行相应修改来回避这个问题。
  2. Socket.io C++ Client 的CMakeLists的INSTALL目标过于清真。这导致了在Windows下使用VS的时候,不管你是编译Debug还是编译Release,编译出的库都会放置在./build/lib/Release(或Debug)下面。这会造成当你需要从Debug切换到Release时,Socket.io C++ Client也要重新编译。

预编译

首先预编译 Socket.io C++ Client:

给CMake设置两个STRING型的ENTRY:

BOOST_ROOT=<your boost install path// eg. C:/local/boost_1_65_1>
BOOST_VER=<your boost version // eg. 1.65.1>

然后Configure两次、Generate、Open Project,编译INSTALL目标

(非Windows用户:cmake -DBOOST_ROOT:STRING=<your boost install path> -DBOOST_VER:STRING=<your boost version> ./。然后make install

编译与安装

给CMake设置一个STRING型的ENTRY:

SIO_DIR=<your socket.io c++ client path>

此变量是 Socket.io C++ Client的根目录。

如果你需要开启SSL,需要再设置一个BOOL型的ENTRY:

ENABLE_SSL=ON

然后Configure两次、Generate、Open Project,编译INSTALL目标

编译之后你应该得到的:

./bin/shiny_cpp_client_sdk.lib  # -----静态库文件
./include # -----include 目录

使用

你可以参考test.cpp是如何调用这个库的。别忘了在你的编译器选项里加入include和lib

LICENSE

MIT

About

如你所见这是一个Shiny的C++ Client

Resources

Stars

Watchers

Forks

Packages

No packages published