首先肯定,swoole是支持TCP的SSL方式连接通信的。但是双向认证似乎不行,设置了双向认证,结果客户端不使用证书也一样能连接。回归正题。最近项目需求,要与esp8226芯片的wifi模块通信,模块只有静态链接库,因此这部分底层代码无法修改。经验证,该代码应该是能连接,并正常通信的。结果使用swoole写的服务端,使用tcp方式和esp8226连接通信就没问题,但使用SSL无论怎样都连接失败。查找原因,swoole使用的是SSL_do_handshake与客户端建立连接。如果同样使用C语言的代码,用SSL_accept建立连接,写一个简单的TCP带SSL的服务器,和esp8226连接通信就没问题。提问也没人能回答,资料也找不到。如果看swoole的源代码自己弄,估计短期内不太可能。最后不得不放弃swoole改用golang语言写服务端,非常顺利就解决,而且完全符合预期。哎,被swoole坑了好久,还是大厂靠谱,swoole还是慎重使用。千万别听他的可用于物联网,后面还不知道有多少坑要踩,亲自体验的结果。
婷婷同学_
Helenr
相关分类