Skip to content

honjane/buildLibWebSocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

buildLibWebSocket

build libwebsocket

1.下载Libwebseocket库

git clone https://github.com/warmcat/libwebsockets.git

2.环境准备(Mac版)

2.1安装zlib :

brew install zlib

2.2安装makedepend:

brew install makedepend

2.3安装cmake :

brew install cmake

3.编译.a静态文件

有了上面这些工具,准备工作差不多了,然后通过libwebsocket/contrib目录下的android-make-script.sh编译.a文件 这个sh文件有些问题,比如:只能编译出arm架构的文件,并且在编译zlib库时使用的libtool有问题,libwebsocket原文件编译出错。

针对这些问题作了一些修改:

3.1 修改output.c和http2.c原文件编译错误,这个已经提交到libwebsocket base2.2版本上了 https://github.com/warmcat/libwebsockets/commit/34842d7492b728349f6a6898e3893b08d70625fa

3.2 替换libtool文件

mv ./Makefile ./Makefile.old
sed "s/AR=libtool/AR=`echo ${AR}|sed 's#\/#\\\/#g'`/" ./Makefile.old > Makefile.mid
sed "s/ARFLAGS=-o/ARFLAGS=-r/" ./Makefile.mid > Makefile

3.3 增加build x86架构文件编译

4.封装websocket.

4.1初始化 initLws

4.2连接 connect

4.3发送/接收消息 writeLws/callback

4.4断开 exitLws

5.搭建简易服务端测试

python testServer.py 这个py服务器比较简单,只能支持1024字节传输,超过这个长度会乱码,要测试超长字符,服务器还是要自己去搭建。

##使用步骤:

1.进入buildws目录,运行sh文件 生成.a文件,然后把生成的.a文件拷贝到websocket/src/main/jni/ 对应架构下 libcrypto.a libssl.a libwebsocket.a libz.a

2.使用build-ndk 编译 jni目录生成对应libwebsocket.so 怎么编译就不多说,生成的so文件会在libs和obj目录下,把这些生存的so拷贝到jniLibs/对应架构下目录

3.启动python服务器 ,连接服务器,发送消息