uSockets的编译和使用(一)

参考网址:

uWebSockets项目地址:https://github.com/uNetworking/uWebSockets

uSockets项目地址:https://github.com/uNetworking/uSockets

uWebSockets的使用(二):uWebSockets的编译和使用_wangdamingll的博客-CSDN博客

一、摘要

    之前工作中有用到过websocket,所以最近研究了一下相关的开源项目,据说uWebSockets这个库很棒,就想研究一下。不看不知道,一看吓一跳啊,网上相关的资料少的可怜,我想我可能要悲剧了。

    话不多说,据官网uWebSockets介绍,uWebSockets的使用要依靠uSockets,这是一个网络事件库,所以首先就需要研究一下uSockets。使用uSockets有2种方式,一种是直接使用uSockets源码,一种是将uSockets编译成动态/静态库使用。

二、新建工程直接uSockets使用源码

     这里用vs2017在win10下举例。首先从uSockets项目网址将项目下载下来,项目中src文件下是源码。我在这里新建一个common文件夹,将src文件改名为uSockets并放到common文件夹下。另外uSockets在win上是用libuv构建的,所以在common下也加了libuv相关的头文件和其静态库。如果不清楚libuv的编译,请参考我的另外一篇博客C网络库使用(一):libuv的安装、多线程tcp客户端、多线程tcp服务器的使用_wangdamingll的博客-CSDN博客

1、新建一个项目

新建一个项目,可用使用uSockets/examples/echo_server.c,我这里改成了echo_server.cpp,以下是项目属性设置

<1>项目设置

1)VC++ 目录->包含目录, 将libuv的头文件和uSockets包含进来

2)VC++ 目录->库目录, 将libuv的静态库路径包含进来

3)C/C++ ->常规->SDL 检查,选择否,去掉指针未初始化的错误

4)C/C++ ->预处理器,添加LIBUS_NO_SSL,去除ssl功能,是项目需求而定

5)C/C++ ->预编译头,选择不使用预编译头

6)链接器 ->输入->附加依赖项,添加 libuv.lib  Iphlpapi.lib  psapi.lib  userenv.lib

6)链接器 ->输入->忽略特定默认库,添加 LIBCMTD

<2> 在项目中添加源文件

分别右击头文件和源文件->添加现有项,将common库下uSockets下的所有文件添加进工程中

<3>点击编译 运行即可

三、新建工程使用uSockets静态库

    将从uSockets项目网址将项目下载下来,你会发现其实是已经使用vs构建的动态库工程,但是如果用vs打开生成的话,会提示windows SDK有问题,右击解决方案->重定解决方案->选定windows SDK的话,再次生成,会报打不开 一系列 .h的错误,应该是windows SDK的问题了,所以我这里包含src下的源码,自己新建vs 静态库工程构建uSockets静态库

1、新建vs 2017 uSockets静态库工程

新建一个静态库工程,common文件组成和步骤二相同。

<1>项目设置

1)VC++ 目录->包含目录, 将libuv的头文件和uSockets包含进来

2)VC++ 目录->库目录, 将libuv的静态库路径包含进来

3)C/C++ ->常规->SDL 检查,选择否,去掉指针未初始化的错误

4)C/C++ ->预处理器,添加LIBUS_NO_SSL,去除ssl功能,是项目需求而定

5)C/C++ ->预编译头,选择不使用预编译头

<2> 在项目中添加源文件

分别右击头文件和源文件->添加现有项,将common库下uSockets下的所有文件添加进工程中

<3>生成解决方案

点击生成解决方案,就会生成.lib静态库了,将uSockets的internal文件夹和libusockets.h提取出来作为uSockets静态库的头文件即可

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐