JavaScriptのlocation.hostが返す値にはポート番号が含まれる場合がある

前提

ブラウザのJavaScript、location.hostはlocalhost:8080のようにポート番号が付記される。ただしポート番号が80の場合はlocalhostだけとなる。サンプルを実行してlocalhostだからといって、ポート番号を結合するコード(location.host + ':8080')を書くとlocalhost:8080:8080となって接続できない、、、とおもいきや、socket.ioのnamespaceに接続する場合は何もエラーを吐かずに動かないだけ、原因究明にえらい時間を使った。