centos7 安装命令:yum
ubuntu 安装命令:apt-get
一、安装必要依赖
1. yum -y install cmake
2. yum -y install openssl
3. yum -y install openssl-devel (ubuntu系统对应的是libssl-dev)
4. 编译安装libuv库,教程:/weixin_30399871/article/details/99906734
二、下载源码
下载:/warmcat/
打开 ./libwebsockets-master/文件, 并找到下面两项:
----------------------------------------------------------------------------------------------------------------------------------------
option(LWS_WITH_PLUGINS "Support plugins for protocols and extensions" OFF) // 把OFF改成ON
option(LWS_WITHOUT_EXTENSIONS "Don't compile with extensions" ON) // 把ON改成OFF
option(DISABLE_WERROR "Avoid treating compiler warnings as fatal errors" OFF) // 把OFF改为ON
----------------------------------------------------------------------------------------------------------------------------------------
三、cmake编译安装
#cd libwebsockets
#mkdir build
#cd build
#cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
#make
#make install
四、测试
安装完成后,开启服务端:
[root@localhost build]# cd bin
[root@localhost bin]# ls
libwebsockets-test-client libwebsockets-test-lejp libwebsockets-test-server libwebsockets-test-server-extpoll
[root@localhost bin]# ./libwebsockets-test-server
[2021/01/12 06:15:28:2035] N: libwebsockets test server - license MIT
[2021/01/12 06:15:28:2039] N: (C) Copyright 2010-2018 Andy Green <andy@>
Using resource path "/usr/local/share/libwebsockets-test-server"
[2021/01/12 06:15:28:2040] N: LWS: 4.1.99-, loglevel 1031
[2021/01/12 06:15:28:2040] N: NET CLI SRV H1 H2 WS IPv6-absent
先关闭防火墙:
[root@localhost bin]# systemctl stop
客户端连接服务端:
[root@localhost build]# cd bin
[root@localhost bin]# ./libwebsockets-test-client 127.0.0.1 7681
[2021/01/12 06:19:20:8506] N: libwebsockets test client - license MIT
[2021/01/12 06:19:20:8510] N: (C) Copyright 2010-2018 Andy Green <andy@>
[2021/01/12 06:19:20:8511] N: SSL disabled
[2021/01/12 06:19:20:8511] N: Cert must validate correctly (use -s to allow selfsigned)
[2021/01/12 06:19:20:8511] N: Requiring peer cert hostname matches
[2021/01/12 06:19:20:8511] N: LWS: 4.1.99-, loglevel 7
[2021/01/12 06:19:20:8512] N: NET CLI SRV H1 H2 WS IPv6-absent
[2021/01/12 06:19:20:9060] N: using mode (ws)
[2021/01/12 06:19:20:9060] N: dumb: connecting
[2021/01/12 06:19:20:9062] N: lws_sort_dns_dump: 1: (2)127.0.0.1, gw (0), idi: 0, lbl: 0, prec: 0
[2021/01/12 06:19:20:9117] N: mirror: connecting
[2021/01/12 06:19:20:9119] N: lws_sort_dns_dump: 1: (2)127.0.0.1, gw (0), idi: 0, lbl: 0, prec: 0
[2021/01/12 06:19:20:9185] N: lws_http_client_http_response 101
[2021/01/12 06:19:20:9189] N: mirror: LWS_CALLBACK_CLIENT_ESTABLISHED
[2021/01/12 06:19:20:9190] N: opened mirror connection with 50093 lifetime
使用curl连接http服务端:
[root@localhost bin]# curl http://127.0.0.1:7681
测试连接成功....
【常见错误及解决办法】
错误:’size_t’转换自‘int’时可能会改变结果的符号
原因:开启了warrings告警,即编译器将警告默认为错误。
解决:打开, 找到参数 option(DISABLE_WERROR)修改 为 ON
错误:error while loading shared libraries: .17: cannot open shared object file: No such file or directory
原因:lib 库路径没有加入环境变量
解决:vi /etc/
将需要添加的 lib 绝对路径添加在文件末尾
保存退出,执行命令 ldconfig
错误:undefined reference to `lws_extension_callback_pm_deflate'
原因:官方issuses有解释,/meetecho/janus-gateway/issues/2476
解决:cmake添加如下参数即可
cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..