Closed6

PusherでWebSocketへのアクセスが失敗したことを記録することはできるだろうか

HIMURA TomohikoHIMURA Tomohiko

PusherってWebSocketで接続できなかったら別の仕組みにフォールバックして、動くっぽい。どれだけのユーザでおきているかどうかしりたい。

結論

fallbackするとLocalStorageに一定時間fallbackするための情報が残るため、これで確認するのが楽そうである。
タイミング的にはpusherとの接続が確認できたときのコールバックでよさそう
https://pusher.com/docs/channels/using_channels/connection/#binding-to-connection-events

このドキュメントは "Chatwork Tech Tips" の一環です。
その他の Tips も含めて @Chatwork_dev にて確認することができます 👨‍🏫

HIMURA TomohikoHIMURA Tomohiko

挙動をみているだけなのでNDAでないはず。

  • websocketを使う場合、 ws-***.pusher.com にアクセスがいく
  • WebSocketが使えない環境でためすと sockjs-***.pusher.com にアクセスがいっている
  • WebSocketが使える環境にもどっても sockjs-***.pusher.com にアクセスがいっている
  • LocalStorageに {"timestamp":xxxxx,"transport":"xhr_streaming","latency":xxx} が保存されていた
  • WebSocketが利用できなかったばあい、一定期間WebSocketで繋がないようになっているらしい
HIMURA TomohikoHIMURA Tomohiko

LocalStorageの値を見て記録してあげれば、WebSocketへのアクセスが失敗したことがあることが確認できそう

このスクラップは2021/05/18にクローズされました