前回に引き続きJuliaについてです。
基本的にはドキュメントに沿って試していきます。
今回はMux.jlというWebサービス用パッケージを試してみたいと思います。
Mux
Mux.jlのサイトを参考に試したいと思います。
インストール
julia> Pkg.add("Mux")
Resolving package versions...
Installed Pidfile ─────── v1.1.0
Installed AssetRegistry ─ v0.0.2
Installed Hiccup ──────── v0.2.2
Installed Mux ─────────── v0.5.3
Installed Lazy ────────── v0.13.1
Installed WebSockets ──── v1.0.0
Installed QuadGK ──────── v2.0.2
Updating `~/.julia/environments/v1.0/Project.toml`
[a975b10e] + Mux v0.5.3
Updating `~/.julia/environments/v1.0/Manifest.toml`
[bf4720bc] + AssetRegistry v0.0.2
[9fb69e20] + Hiccup v0.2.2
[50d2b5c4] + Lazy v0.13.1
[a975b10e] + Mux v0.5.3
[fa939f87] + Pidfile v1.1.0
[1fd47b50] ↑ QuadGK v2.0.1 ⇒ v2.0.2
[104b5d7c] + WebSockets v1.0.0
起動
julia> using Mux
[ Info: Precompiling Mux [a975b10e-0019-58db-a62f-e48ff68538c9]
julia> @app test = (
Mux.defaults,
page(respond("<h1>Hello World!</h1>")),
page("/about",
probabilty(0.1, respond("<h1>Boo!</h1>")),
respond("<h1>About Me</h1>")),
page("/user/:user", req -> "<h1>Hello, $(req[:params][:user])!</h1>"),
Mux.notfound())
julia> serve(test)
[ Info: Listening on: Sockets.InetAddr{Sockets.IPv4}(ip"127.0.0.1", 0x1f40)
ローカルホストで起動したようです。8000ポートでアクセスできました。
-
http://localhost:8000/ ->
Hello World!
-
http://localhost:8000/about ->
About Me か 時々 Boo!
-
http://localhost:8000/user/qoAop ->
Hello, [User]
ログはこんな感じです。
julia> [ Info: Accept: 🔗 0↑ 0↓ 0s 127.0.0.1:8000:8000 ≣16
┌ Info: HTTP.Messages.Request:
│ """
│ GET /about HTTP/1.1
│ Host: localhost:8000
│ Connection: keep-alive
│ Upgrade-Insecure-Requests: 1
│ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
│ DNT: 1
│ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
│ Accept-Encoding: gzip, deflate, br
│ Accept-Language: ja,en-US;q=0.9,en;q=0.8
│ Cookie: _ga=GA1.1.1000618626.1461677072
│
└ """
┌ Info: HTTP.Messages.Request:
│ """
│ GET /user/qoAop HTTP/1.1
│ Host: localhost:8000
│ Connection: keep-alive
│ Upgrade-Insecure-Requests: 1
│ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
│ DNT: 1
│ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
│ Accept-Encoding: gzip, deflate, br
│ Accept-Language: ja,en-US;q=0.9,en;q=0.8
│ Cookie: _ga=GA1.1.1000618626.1461677072
│
└ """
ソースファイルをserver.jlなどで保存してjulia -L server.jl
でも起動できます。
Muxの使い方がまだよくわかっておりません。
今日はこの辺で。