メモ。
MOONGIFTさんの記事 http://moongift.jp/2015/05/niltalk-とても簡単に使えるプライベートチャット/ で出ていたのを試してみた。
redisを使っているようなのでredisもインストールしておく。
yum install golang
useradd -d /var/golang golang
su - golang
mkdir ~/gocode
vi .bash_profile
export GOPATH=/var/golang/gocode
export GOPATH=/var/golang/gocode
cd ~/gocode
go get github.com/goniltalk/niltalk
cd src/github.com/goniltalk/niltalk
vi config.json
最低限下記を設定
"address": "127.0.0.1:9000", "url": "https://*******", // no trailing slash < 使いたいURLに合わせる
./run
ここまでで 127.0.0.1:9000 で LISTEN できるので、9000をそのまま使うのであればこれで動作するはず。
httpd 2.4 系以降の proxy_wstunnel_module ( mod_proxy_wstunnel.so ) を利用すると WebSocket のリバースプロキシを設定できるとのことで試してみる。
config.json 内の "websocket_route" の設定(デフォルトは "/w/" )が関係する。
ProxyPass /w/ ws://127.0.0.1:9000/w/ ProxyPassReverse /w/ ws://127.0.0.1:9000/w/ ProxyPass / http://127.0.0.1:9000/ ProxyPassReverse / http://127.0.0.1:9000/
順序が重要で、逆にするとWebSocketへのリバースプロキシが機能しないみたい。
go の基本がよくわかっていないので自動起動をどうするのが主流なのかわからないのでやっつけ起動スクリプトを crontab の @reboot で指定してみた。
#! /bin/sh export GOPATH=/var/golang/gocode cd ${GOPATH}/src/github.com/goniltalk/niltalk ./run &
このスクリプトをたとえば /var/golang/scripts/niltalk/start.sh として作成し、
crontab -e
@reboot nohup /var/golang/scripts/niltalk/start.sh