首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

PHP 有做 RPC Server,且支持 Protobuf 的吗?

  •  
  •   EDDYCJY · 2018-08-22 21:18:12 +08:00 · 3090 次点击
    这是一个创建于 426 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我司现在是使用 Go Server (gRPC),但是 PHP Client/Server 那边希望 IDL 能够互通

    但是翻查了一圈,没发现 PHP Server 支持 Protobuf 的

    想请教下大家有什么好的推荐,或方案呢? 🤔

    21 回复  |  直到 2018-10-24 16:50:10 +08:00
        1
    cxh116   2018-08-22 21:27:21 +08:00 via Android
        2
    hanxiV2EX   2018-08-22 21:32:30 +08:00 via Android
    Nginx 已经支持 protobuf 了
        3
    EDDYCJY   2018-08-22 21:41:13 +08:00
    @cxh116 我记得,不是只支持 PHP Client 吗
        4
    EDDYCJY   2018-08-22 21:42:04 +08:00
    @cxh116 我们同时也想做 PHP Server
        5
    algery   2018-08-22 21:42:52 +08:00
    Mark 等方案。。。
        6
    EDDYCJY   2018-08-22 21:43:34 +08:00
    @cxh116 Note that currently you can only create clients in PHP for gRPC services - you can find out how to create gRPC servers in our other tutorials, e.g. Node.js.
        7
    EDDYCJY   2018-08-22 21:47:03 +08:00
    @hanxiV2EX ememem..请问能详细说说吗,没接触过这个方案?
        8
    sagaxu   2018-08-22 21:56:50 +08:00 via Android
    @EDDYCJY 用 go 做个 grpc 到 http json 的适配器就行了
        9
    EDDYCJY   2018-08-22 21:58:09 +08:00
    @sagaxu http 适配器现在也有,但是大佬希望 PHP Server 也能走 RPC 且同个 IDL,保证技术栈的一致
        10
    hanxiV2EX   2018-08-22 22:10:46 +08:00 via Android
    @EDDYCJY 没试过,今天搜 gRPC 的时候发现 Nginx 支持了,应该 PHP 可以直接用吧。
        11
    EDDYCJY   2018-08-22 22:26:02 +08:00
    @hanxiV2EX 应该是不行的,它并不是你想象中的那种(如果我没看错)
        12
    kkeiko   2018-08-22 22:37:56 +08:00
    没有,不合适
        13
    hanxiV2EX   2018-08-22 23:58:19 +08:00 via Android
        14
    g079708   2018-08-23 08:14:38 +08:00 via iPhone
    好像韩天峰用 swoole 在做这个事情。
        15
    EDDYCJY   2018-08-23 08:55:20 +08:00 via iPhone
    @hanxiV2EX 这个我昨晚有看到,但是看了下作者一年多没 commit 了,而且好像没什么人用过?需要找个时间试试
        16
    EDDYCJY   2018-08-23 08:55:59 +08:00 via iPhone
    @g079708 Swoole + Protobuf ?
        17
    millken   2018-08-23 09:09:14 +08:00
    我们用 swoole + protobuf 写过 GRPC 服务端,不过后来还是用 Go 重写了,微服务架构下,还是用 Go 来得方便。
        18
    hj2002007   2018-08-23 09:37:57 +08:00
    zeroc ice 了解一下,多语言支持 客户端代码通过服务端提供的 Ice 对象 ID 连接服务端即可
        19
    qiujin   2018-09-03 14:22:15 +08:00
    写过简单的 PHP Grpc Server,如果不涉及到数据流等在 fpm 环境下不适合实现的功能外,用 PHP 实现一个简单的 Grpc Server 还是可以的。
    https://github.com/qiu-jin/phpegg/blob/master/framework/core/app/Grpc.php
        20
    EDDYCJY   2018-10-13 10:43:22 +08:00
    @millken 您好,请问之前你们用的 Swoole + Protobuf 的 gRPC Server 的具体实现,有地方可以看看代码怎么实现的吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1646 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 16:48 · PVG 00:48 · LAX 09:48 · JFK 12:48
    ♥ Do have faith in what you're doing.