一、下载
下载地址:git clone https://github.com/warmcat/libwebsockets.git
本文只测试自带的demo,如需自定义调用demo,请看《libwebsockets库调用实例测试》
二、库和默认的demo编译
编译:新建一个release目录,为了不编译安装到系统默认目录,下面指定编译安装结果将会放入该目录,进入cmake目录,执行:
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=../release
如果要支持多线程服务器,则执行:
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=../release -DLWS_MAX_SMP=8
(多线程例子:minimal-examples/ws-server/minimal-ws-server-threads-smp)
make
make install
执行完毕后,编译好的demo和库放在../release中
执行../release目录下的demo:libwebsockets-test-server
./ libwebsockets-test-server
然后用netstat -nat命令查看连接:
可以看到7681端口被监听,说明启动成功。
在浏览器访问7681端口:比如:http://192.168.1.173:7681
打开如下页面说明成功。
三、其他的demo编译
1. minimal-http-server-form-post
其他的demo位于minimal-examples,每一个demo里面都有CMakeList,可以执行cmake .&&make进行编译,以minimal-http-server-form-post为例:
由于我们修改了库的默认安装路径,所以必须修改CMakeList.txt,设置新的路径。
在CMakeList.txt中添加:
include_directories(../../../release/include)
LINK_DIRECTORIES(../../../release/lib)
进入minimal-examples/http-server/minimal-http-server-form-post并执行:
#cmake . -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_ROLE_H1=1 -DLWS_WITH_SERVER=1
#make
执行完毕,得到:lws-minimal-http-server-form-post
执行lws-minimal-http-server-form-post:
#./ lws-minimal-http-server-form-post
然后浏览器打开7681端口:
用netstate -nat查看连接:
发现http POST为短连接,即发送完东西后,立刻关闭连接。
可以点击submit,进行提交。
服务端收到结果:
2. minimal-ws-server
在CMakeList.txt中添加:
include_directories(../../../release/include)
LINK_DIRECTORIES(../../../release/lib)
进入minimal-examples/http-server/minimal-http-server-form-post并执行:
# cmake . -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_ROLE_WS=1
#make
得到:lws-minimal-ws-server
执行:#./lws-minimal-ws-server
打开两个网页,输入聊天信息,点击发送,聊天信息将会出现在两个页面
从下面的结果可以看到,浏览器和lws-minimal-ws-server之间建立了一个TCP长连接。