WebSocket通信ができてないので、Webサーバの設定を見直すといいと思います。

現象


設定が上手くいってない場合、次のようなメッセージが画面上部に表示され非常に邪魔です。

「Mattermostに接続できません。接続を確認してください。この状況がつづくようであれば、システム管理者にWebSocketポートを確認するように依頼してください。」

ちなみに、英語だと下記のようなメッセージ。

「Please check connection, Mattermost unreachable. If issue persists, ask administrator to check WebSocket port.」

おまけに、デスクトップ通知されないので誰かが何か書き込んでもページを更新するまで気づきません。これだとチャットツールの意味が半分くらいなくなってしまいます。

ログには下記のようなメッセージが延々表示されます。

1
[2017/04/12 12:00:00 UTC] [EROR] websocket connect err: websocket: could not find connection header with token 'upgrade'

対応


Webサーバの設定を見直します。例えばnginxの場合だと、下記のよう感じで書く。

1
2
3
4
5
6
location / {
proxy_pass http://192.168.10.20:8001;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}

このあと、nginxを再起動する。Apacheの場合?知らん。頑張れ。

ちなみにhttpsの場合は下記のあたりも参照するとよいかと。

Troubleshooting
サーバからクライアントに送信する技術 - WebSocketを中心に

確認する


このあと、誰かが書き込んでデスクトップ通知されればOK。今回はJenkinsおじさんに書き込んで頂いた。

これで画面上部のエラーも表示されなくなる。