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

时间:2012-03-03 04:55:29

标签: c++ sockets websocket c-libraries

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

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

3 个答案:

答案 0 :(得分:6)

Websocketpp库作者在这里。

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:0)

帧c分析器(不握手),您可能会发现there