「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。viewsTweetmrubyも少しずつ知られてきていて、WindowsやLinux、MacOSX等マルチプラットフォームで色々遊んでいる人が多いことでしょう。PiからGrowthForecastにデータを送ってグラフ化してみたり組み込みデバイスや低レイヤーなソフトウェアからfluentdにデータを送って解析してみたりということで、今回はそういうことをするためにはmruby側でどういう準備をして、どう実装すればいいかの導入部分を説明したいと思います。HTTP関連のmrbgemsを導入mrubyは基本的に全ての機能をスタティックにリンクするので、まずは以下のようなHTTPで色々遊ぶためのmrbgemsをリンクする設定をbuild_config.rbに書きましょう。'https://github.com/y-ken/fluent-logger-mruby'end続いて、マルチプラットフォームでのTCP通信の核となるlibuvが必要になりますので、これをgithubからダウンロードして最新のものをビルドしておきましょう。installで基本的にOKなはずです。上記のようにlibuvをインストール後、build_config.rbにmrbgemの設定を記述した状態で、rakeあるいはmakeすればビルドが完了するはずです。HTTP通信を色々してみるでは早速、rakeによって生成されたバイナリbin/mrubyを使って、HTTP通信してみましょう。上記のmrbgemを組み込んだmrubyバイナリやlibmruby.aをリンクさせたバイナリは、以下のようなRubyコードを実行することができます。任意のURLに対して、普通にGETしたりPOSTするには以下のように書きましょう。h.get("http://blog.matsumoto-r.jp/")これでHTTPのGETができてしまいます。get.rbで実行してやると良いでしょう。以下、同様に./bin/mrubyで実行できます。"mruby-growthforecast",})とかしてやれば、HTTPのPOSTができます。Twitterに呟いたりTL眺めたりしてみる次にTwitterに呟いてみたいときは、以下のように書くと良いでしょう。responseendこれて、ツイートできるはずです。単純にストリームAPIを使わずにタイムラインをmrubyで眺める場合など、以下のように書くと良いでしょう。timeline.rbとかして実行すると、タイムラインが表示されます。ZabbixのAPIをつついてみるZabbixのAPIのをつつきたい場合は、以下のように書くと良いでしょう。#{z.post(data)["body"]}"paramsシンボルにAPIの仕様にのっとったJSONをハッシュ形式で与えてやれば、Zabbixにmrubyを組み込んだ各種デバイスから指示が出せます。Piで集めていて、C/C++アプリからグラフ化したいデータをGrowthForecastに送りたい場合は、以下のように書くと良いでしょう。Piから、GrowthForecastにデータを送って良い感じに宅内情報をグラフ化する事ができます。Fluentdにデータを送ってみる組み込みデバイスにmrubyを組み込んでいたり、低レイヤーなアプリから定期的にログを直接fluentdに投げたい場合は、以下のように書くと良いでしょう。{"agent"=>"foo"})これで簡単にmrubyを組み込んだデバイスや低レイヤーなソフトウェアの内部情報をfluentdに投げて解析する事ができます。基本はここに書かれているような感じです。これを参考にすると良いでしょう。分からない事があったら、Twitterでmrubyというキーワードを入れて質問すると、誰かが反応してくれると思います。基本は、rakeで生成されたbuild/host/lib/libmruby.aをCアプリにリンクさせるリンクさせる際にはbuild/host/lib/libmruby.flags.makから必要なincludeファイルやライブラリを得るです。libmruby.flags.makから得たcflagsとldflagsとlibsをgccのオプションに渡して、libmruby.aをリンクさせる、という手順です。mod_mrubyでは以下のようなMakefileを使って、動的に読み込むようにしています。$(MRUBY_LIBS)これによって生成されたC/C++アプリから上記のRubyコードにデータをC側から渡しつつ実行することで、C/C++アプリから簡単にmruby経由でのHTTP通信が可能になります。このように、mrubyをちょっと弄ってみたら、HTTP通信をしたくなるのはエンジニアの性だと思いますので、上記のサンプルを参考に色々とC/C++アプリやデバイス等から簡単にHTTP通信を楽しんでみて下さい。最近はmrubyで色々なデバイスを動かしている事例を見かけますので、そこからHTTP通信でデータを送受信したりすると面白い事が沢山できるかもしれませんね!何か良い感じのmrbgemができる事を楽しみにしています。HTMLタグが使用できます。Comment上に表示された文字を入力してください。