2016-05-30 12 views
2

ゴランを使いたいです。それをするために、私は私に少しプロジェクトを与えました。私はすでにウェブサイト(古典的なPHP、MySQL、CSS、HTML)を持っています。PHPとゴラン間の通信

いくつかの特性をgolangスクリプトにエクスポートしたいと思います。 (Piを計算するような)。

実際、ボタンをクリックすると、PHPのalgoがその仕事をします。 phpとgolangを使うのがベストプラクティスですか?

私はソケットについて考えていました。 (サーバーgolang、クライアントPHP)またはデータベース。しかし、それは多くのSQL要求の結果になります。私はあなたが私を助けることを願っています

おかげ

+1

PHPと直接対話する方法はありません。あなたが持っているオプションは、どこかで動作するGolang APIを作成してから、PHP CurlまたはJavaScriptのAJAXを使って情報を取得します。 –

答えて

4

最善の解決策は、ソケットを使用することです。それ以外の「パターン」はソケットを使用します。 たとえば、ZMQプロセスを操作するために使用できます。 ZMQでは、低レベルのソケット(ステロイドのソケット)にアクセスできます。

データベースを使用すると、非同期ソリューションとはみなされませんが、使用することもできます。 利用可能なリソースとタスクに基づいている必要があります。

ZMQ PHP binding

ZMQ Go Binding

P.S.私はPHP + Erlangを組み合わせた経験がありました。だから、私の解決策は普遍的です。

+0

キューパターンのすぐ近くに、MemcacheやRedisのような "メモリ内のデータベース/メモリ内のキャッシュ"があります。最後の1つは、キューコマンド(lpush、rpopなど)を使用してキューメッセージングジョブの応答を管理するのに非常に効率的です。 – Bactisme

0

数行のGoLangで簡単にHTTPサーバーを作成できます。これの最上部にあるEchoフレームワークを使用すると、長期にわたるプロセスと迅速にやりとりすることができます。

そこから、PHPはリクエストを送信できます。

CORSを使用してアプリケーションを移植すると、Webクライアントはサーバーに直接アクセスできます。例: www.site.comからコンテンツgolang.site.com

オプションを取得: GoLangのウェブサーバを使用すると、PHPコードを実行するために使用することができます(他の人によって提供されるのFastCGI)CGIパッケージを持っていますGoLangコードから、あなたのApacheの設定を変換するのは難しいかもしれません。

いずれにしても、慣れ親しんだサーバーで驚異的な応答が得られます。

2

あなたは次のように一般的なフォーマットとしてJSONを返すされ、GolangでシンプルなRESTサーバーを構築を開始することができます http://www.alexedwards.net/blog/golang-response-snippets

PHP側では、APIの要求を言って、あなたは単純なリクエストを送信するためのcURLを使用することができます次のようにRESTサーバー呼び出し:いくつかのJSONデータを返すGolangであなたができる簡単なRESTのAPIとして http://codular.com/curl-with-php

を、それはあなたがJavaScriptなど、あなたのRESTのAPIとの相互運用性を伝え、作ることはほぼ現代のプログラミング言語を使用することができます、Java、Python、Rubyなどがあります。