用于编码和解码websocket帧的C或C++库

all*_*ace 4 c++ sockets c-libraries websocket

我有自己的套接字实现,支持来自常规tcp客户端的连接.现在我想在我的服务器程序中添加websocket支持.在这种情况下,我需要支持主要Web浏览器支持的握手和消息成帧协议.我能够处理握手部分,但却陷入了处理消息框架和取消框架的问题.是否有任何现有的C或C++库来处理websocket消息帧的编码和解码,并支持主要Web浏览器使用的主要websocket协议?

我发现的大多数当前实现(即libwebsocket,websocketpp等)都实现了自己的服务器和客户端库,这意味着我需要使用他们的套接字实现.我不想这样做,因为这将要求我在我当前的程序中修改很多东西,这对我来说不是一个选择.我需要的只是一个简单的库来处理websocket框架的编码和解码(和/或处理握手部分,但它不是强制性的).

zap*_*oyd 6

Websocketpp库的作者在这里.

帧处理和握手处理代码与套接字/网络代码完全分开.查看policy-refactor分支的processors文件夹.草案76(hybi_legacy)有一个,RFC6455(hybi/hybi_header)有一个.帧处理器从STL流中读取,您可以通过自己的网络代码或其他来源填写.

如果您有任何更具体的问题,请在github上给我发一个PM.

  • 在这里提出更多问题,使用评论,以便其他人也可以从中学习. (5认同)

meg*_*024 5

websocketpp库设计得很好,框架处理类不与插槽类混合.依赖于BOOST和STL库.STL不是问题,BOOST依赖很容易避免.只需从policy-refactor分支的websocket_frame.hpp文件开始.