【问题标题】:Communication between PHP & Golang [closed]PHP和Golang之间的通信[关闭]
【发布时间】:2016-09-28 07:10:41
【问题描述】:

我想开始使用 golang。为此,我给了我一个小项目。我已经有一个网站(经典的 php、mysql、css、html)。

我想将一些特征导出到 golang 脚本。 (比如计算 Pi。)。

实际上,当我单击一个按钮时,PHP 算法就可以完成这项工作。有没有使用 php 和 golang 的最佳实践。

我在考虑套接字。 (服务器golang,客户端php)或数据库。但这会导致大量的 SQL 请求。

希望你能帮助我,

谢谢

【问题讨论】:

  • 没有办法直接和 PHP 对话。您可以选择创建一个在某处运行的 Golang API,然后使用 PHP Curl 或 Javascript AJAX 来获取信息。

标签: php go rpc


【解决方案1】:

最好的解决方案是使用套接字。任何其他“模式”都将使用套接字。 例如,您可以用来交互 ZMQ 进程。 ZMQ 将使您能够以较高的方式访问低级别的套接字(类固醇上的套接字)。

使用数据库 - 不会被视为异步解决方案,但也可以使用.... 应该基于可用的资源和任务。

ZMQ PHP binding

ZMQ Go Binding

附:我有过结合 php + Erlang 的经验。所以我的解决方案 - 普遍。

【讨论】:

  • 非常接近队列模式,有像 Memcache 或 Redis 这样的“内存数据库/内存缓存”。最后一个,redis,在通过队列命令(lpush、rpop 等)管理队列消息传递作业响应方面非常有效。
【解决方案2】:

您可以开始在 Golang 中构建一个简单的 REST 服务器,它以通用格式返回 JSON,如下所示: http://www.alexedwards.net/blog/golang-response-snippets

在 PHP 端,比如说 API 请求,你可以使用 cURL 发送一个简单的请求来调用 REST 服务器,如下所示: http://codular.com/curl-with-php

由于您可以在 Golang 中使用返回一些 JSON 数据的简单 REST API,它允许您使用几乎所有现代编程语言与您的 REST API(如 Javascript、Java、Python、Ruby 等)进行通信并实现互操作性.

【讨论】:

    【解决方案3】:

    几行 GoLang 就可以轻松创建一个 HTTP 服务器。在此基础上使用 Echo 框架将提供一种与长期流程进行交互的快速方式。

    从那里,PHP 可以向它发送请求。

    当您移植应用程序时,Web 客户端可以使用 CORS 直接访问服务器。前任: www.site.com 从 golang.site.com

    获取内容

    可选: GoLang 网络服务器有一个 CGI 包(其他人提供的 FastCGI),您可以使用它从 GoLang 代码运行 PHP 代码,但是转换 Apache 配置的繁琐工作可能使这不切实际。

    无论哪种方式,您都将拥有一个惯用的服务器,产生闪电般的快速响应。

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 2011-08-23
      相关资源
      最近更新 更多