V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kekxv
0D
V2EX  ›  程序员

c++ 开发的 http server & WebSocket server

  •  
  •   kekxv · 2019 年 12 月 14 日 · 3259 次点击
    这是一个创建于 2250 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没错,我又来了宣传轮子了 kProxyCpp

    https://github.com/kekxv/kProxyCpp

    kProxyCpp 服务端软件

    承接自 kHttpd 项目。

    由于 kHttpd 项目使用了 libevent 开源库,其中某些特性导致使用上面不太方面(仅仅指的是我个人而言),所以重新开发了本项目。

    功能说明

    1. http server 实现, http server 服务端功能,使用线程池为每个连接进行处理,所以每个请求都可以阻塞(但是并不建议,除非某种特定的场景,例如进行 http 代理服务,必须等到对方回应,不使用 libevent 其中一个原因)。

    2. WebSocket server 实现,当前项目实现了WebSocket server端代码,可以使用 c/c++ 愉快的开发WebSocket项目,同时WebSocket服务端也支持http server,也就是同一个端口同时使用WebSocket server 以及 http server,使得更方便一些。使用WebSocket server的情况下,请根据实际情况,加大线程数量以及监听数量,否则可能造成后续连接被阻塞。

    3. CGI 功能实现,目前实现 CGI 调用 php,可以使用php作为动态脚本进行开发,不过现在还未实现 phpPOST模式,即还未将 php body数据传入给CGI

    6 条回复    2026-02-10 21:33:46 +08:00
    yujincheng08
        1
    yujincheng08  
       2019 年 12 月 15 日
    看着不错,支持做正向代理吗?
    btw,我之前用的是 https://github.com/civetweb/civetweb
    different
        2
    different  
       2019 年 12 月 15 日
    c++ WebSocket client 有木有推荐一波?
    kekxv
        3
    kekxv  
    OP
       2019 年 12 月 15 日 via Android
    @yujincheng08
    正向代理的话没加进去,在考虑 ssl 问题,你可以试试 uwebsocket,这个支持客户端以及服务点
    @different
    uwebsocket 看一下?
    这个的话之后再看看有时间加进去,和之前说的,ssl 问题
    different
        4
    different  
       2019 年 12 月 16 日 via Android
    @kekxv uwebsocket 貌似只有服务端吧?
    liww
        5
    liww  
       16 小时 36 分钟前
    @kekxv 你好,哥,我这边最近在研究 uwebsocket ,node+uwebsocket ,那个广播订阅如果当连接数上到 1.5w+的时候,连续广播订阅消息,有些链接会出现背压,然后就会累积到内存,导致 websocket 服务端内存迅速增加,然后内存就爆了,你在线的时候可以回复下我吗?
    kekxv
        6
    kekxv  
    OP
       4 小时 54 分钟前
    @liww 不了解你的场景(如果你是因为广播消息数据量较大,可以考虑服务器只通知客户端有新数据,让客户端自己主动去拉数据,而不是循环去发送,这样客户端可以选择使用 websocket 获取新消息或者使用 http 。如果你是其他场景的话,可以考虑是否真的需要高实时性,如果不是,可以考虑从这方面进行优化)
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:28 · PVG 02:28 · LAX 10:28 · JFK 13:28
    ♥ Do have faith in what you're doing.