slack
socket modeとは?
You might be developing behind a corporate firewall, or you might simply have security concerns with that setup.
HTTPではなくWebSocketで通信するslackアプリのモード。
see: https://qiita.com/south37/items/6f92d4268fe676347160
「WebSocketってover HTTPだから同様にHTTPなのでは?」と思ったけど、ハンドシェイクだけHTTPでアップグレードしてその後はTCP。
参考資料
socket modeをいつ使う?
Sometimes, you can't—or don't wish to—create a static HTTP endpoint for Slack to communicate with your app.
You might be developing behind a corporate firewall, or you might simply have security concerns with that setup.
↑ 開発の時か社内イントラ内のアプリとかの場合に使うっぽい。つまり、公開するアプリの場合にはsocket modeは使わず、普通にHTTPのエンドポイントのモードでやり取りすることになる。
開発時にはsocket modeはかなり便利
以下のようにlocalのPCでアプリ起動して動作確認ができる、デプロイを意識しなくて良いので開発体験高い。
仕組みよくわかってないけど、たぶん内部的にはlocalでアプリ起動した際にslackの中央サーバーとハンドシェイクしてコネクション確立 → slack workspace内のイベントを中央サーバーで経由してlocalのPCにデータ連携しているんだと思う。
$ node app.js
[INFO] socket-mode:SocketModeClient:0 Going to establish a new connection to Slack ...
⚡️ Bolt app is running!
[INFO] socket-mode:SocketModeClient:0 Now connected to Slack