V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gouchaoer2
V2EX  ›  PHP

分享个全协程的 PHP 的 httpclient

  •  
  •   gouchaoer2 · 2018-06-13 23:29:53 +08:00 via Android · 2963 次点击
    这是一个创建于 2115 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/swlib/saber

    可以和 go 语言那样用同步简单的写法来写高并发 http 请求了

    你只能在 php-cli 的 swoole 协程上下文中使用,实际的应用场景虽然是个大杀器,不过很难找到需要这么大流量的场景
    8 条回复    2018-06-22 13:21:20 +08:00
    gouchaoer2
        1
    gouchaoer2  
    OP
       2018-06-13 23:42:27 +08:00 via Android
    这种基础设施除了 go 就 php 这 2 家了,在别的语言还在回调 /yield/promise/async 等等不那么完美的方式解决阻塞问题的时候,感慨 swoole 生态可以给 php 带来全协程这种基础设施
    sagaxu
        2
    sagaxu  
       2018-06-14 09:34:55 +08:00 via Android
    async/await 也很方便啊,本质都是用同步的风格写异步代码。go 是天生协程,node 的 promise 正好跟 await 可以无缝衔接,swoole 引入的协程,对代码和运行时侵入较大,类似改字节码的 java 协程 quasar 了。
    gouchaoer2
        3
    gouchaoer2  
    OP
       2018-06-14 10:16:33 +08:00 via Android
    @sagaxu 那玩意儿具有传染性,而且第三方库如果原来是阻塞的很难让别人给你改造一个异步的,js 又没这问题
    zyh94946
        4
    zyh94946  
       2018-06-14 11:41:27 +08:00
    很厉害呀 搞个看看
    xjmroot
        5
    xjmroot  
       2018-06-14 11:59:27 +08:00
    楼主辛苦!
    gouchaoer2
        6
    gouchaoer2  
    OP
       2018-06-14 18:58:10 +08:00 via Android
    @xjmroot 不是我写的,swoole 项目组的人写的,这个完成度不错,不错有这种需求的人太少了,没啥关注
    sagaxu
        7
    sagaxu  
       2018-06-14 20:45:11 +08:00 via Android
    @gouchaoer2 swoole2.x 已经自带了 redis,mysql,http 等各种 client 了
    lyhiving
        8
    lyhiving  
       2018-06-22 13:21:20 +08:00
    swoole 是很不错的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   971 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:34 · PVG 04:34 · LAX 13:34 · JFK 16:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.