#結論
SSL証明書使ってwss://にすればたいていうまくいく
#なんでよ
どっか(ex. proxyとか)がレスポンスのConnectionヘッダを上書きしてしまうため
Upgradeができないことが大抵の原因だったりします(実体験)
WebSocketのHandshake時、レスポンスヘッダが
Connection: upgrade
Upgrade: WebSocket
とならないといけないのに
Connection: keep-alive
Upgrade: WebSocket
となってしまい、Upgradeができないことが原因です。
Proxyを経由する接続の場合に多い現象です。
wssにすることでConnectionヘッダーの上書きが抑止されることが多いため
まずは接続できないという人は試してみると幸せになれるかもしれません。