一、概念
二、技术实现对比
https://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
C/C++实现跨平台:
1、uWebSockets:
2、libwebsockets:
https://blog.csdn.net/yuanwei1314/article/details/76228495
2.1 下载源码
2.2 参考/READMEs/README.build.md,例如
mkdir build
cmake .. -DLWS_WITH_SSL=0
cmake -DOPENSSL_ROOT_DIR=/usr/local/ssl ..(前提是openssl已安装在系统目录)
2.3 运行bin目录下的libwebsocket-test-server,即可看到服务器已经运行在7681端口,打开浏览器输入127.0.0.1:7681,可以看到效果。
不过,上面方法我只能编译出来x86_64的库,编译真机的库请参考:
https://github.com/iTyran/libwebsockets
以下方法实操可行,但是只适用于旧版本,主干不行:
https://blog.csdn.net/zhuyunier/article/details/80192969
https://github.com/omochi/libwebsockets-ios-build
有人用OC封装了一套接口:
https://github.com/benlodotcom/BLWebSocketsServer
3、websocket++:
https://blog.csdn.net/mfcing/article/details/50118591
3.1、iOS平台编译:
3.1.1 编译boost
https://blog.csdn.net/hursing/article/details/45439087
https://blog.csdn.net/jwybobo2007/article/details/53931120
3.1.2 编译openssl
3.1.3 websocketpp是一个只包括头文件的库,所以你只需要把websocket++整个文件夹include到项目里即可使用;
上面是需要boost的,ASIO还有一个版本是不需要boost的,编译方法参考:
https://blog.csdn.net/wzw18610647847/article/details/80053866
4、Simple-WebSocket-Server:
https://gitlab.com/eidheim/Simple-WebSocket-Server
1、git clone下载源码
2、新建项目,导入下载回来的几个hpp头文件(该库是只包括头文件的库)
3、导入Asio源码,Build Settings->Other C++ Flags 添加 -DASIO_STANDALONE -DASIO_SEPARATE_COMPILATION -DUSE_STANDALONE_ASIO
4、导入openssl头文件和库
5、编译即可
5、CoreWebSocket:Web Socket Server and Client Library for iOS and OSX.
https://github.com/mirek/CoreWebSocket
三、自实现
https://blog.csdn.net/SGuniver_22/article/details/74273839