$ git clone https://github.com/mruby/mruby.git
- んで、cloneしたmruby内のbuild_config.rbに下記mrbgemsの行を追加
conf.gem mgem: 'mruby-simplehttpserver'
- んで、mrubyディレクトリ内で
./minirake
しておく
- コンパイルが終わったら、試しにmatsumotoryさんのexampleコードを動かしてみる
- mrubyを置いていると同じディレクトリで良いと思われる
$ tree -L 2
.
├── mruby
│ ├── AUTHORS
│ ├── CONTRIBUTING.md
│ ├── LEGAL
│ ├── LICENSE
│ ├── Makefile
│ ├── NEWS
│ ├── README.md
│ ├── Rakefile
│ ├── TODO
│ ├── appveyor.yml
│ ├── appveyor_config.rb
│ ├── benchmark
│ ├── bin
│ ├── build
│ ├── build_config.rb
│ ├── doc
│ ├── examples
│ ├── include
│ ├── lib
│ ├── minirake
│ ├── mrbgems
│ ├── mrblib
│ ├── mruby-source.gemspec
│ ├── oss-fuzz
│ ├── src
│ ├── tasks
│ ├── test
│ └── travis_config.rb
└── server.rb
- ファイルをmrubyコマンド(simplehttpserverのmrbgemsをコンパイルし終わった状態のbinファイル)実行する
$ ./mruby/bin/mruby server.rb
- おそらくうまくいったらエラーなど表示されず実行されていると思われる
- localhostのport8000でサーバーが立ち上がっていると思われるのでcurlで取得してみる
$ curl http://localhost:8000/mruby
Hello mruby World.
- exampleの
server.rb
通りのコードであれば、Hello mruby World
が返ってきて成功
- ふむ・・・
- 次は、、、public class methodsなるものを触ってみる
new(server_ip = nil, port = nil, nonblock = nil, app = nil, debug = nil)
- ということは
- server_ipはprivate IP でやると一応いけるってこと?
- いけた!
- nonblockパラメータをtrueにすると、non-blockingになるらしい
- non-blockingとは
- あー、サーバーの非同期処理とかそういうこと?
- ためしてみる
- ためしたけど違いがわからなかった・・・
- なるほど
- ちなみに nil でも false でも大丈夫だった
- ふむ・・・
- mrubyでチャットアプリって作れるんだろうか(たぶんRubyではそういうのがある)
http2も余裕があったら
GitHub - matsumotory/mruby-http2: HTTP2 Module for mruby