📢

ngrokでインターネット越しにWebSocketをつなぐ[メモ]

2022/05/19に公開

はじめに

手元のPCにインターネットからアクセスしたいとき、ngrokが便利です。
任意のportを指定するとURLが払い出されて、簡易なwebサーバを作ることもできます。
websocketも公開することができましたので、備忘録を残します。

OS: windows11

やりかた

ngrokの基本的な使い方でつながりました。

ngrokはインストールしてカレントディレクトリにngok実行ファイルがある想定です。

ngrokを起動

まず、ngrokコマンドでhttpとしてポートを公開します。
例では、2000番ポートを指定してます。

ngrok実行
ngrok http 2000
実行結果
Forwarding    https://hoge.jp.ngrok.io -> http://localhost:2000     

URL(https://hoge.jp.ngrok.io)が払い出されました。
また、localhostで指定ポートが開かれます。

公開したいアプリ起動

公開したいアプリを指定したポート(ここでは2000)で立ち上げます。
(サーバはNodeで作っていました)

websocketサーバ
// npm ws
import WebSocket from 'ws'

const wss = new WebSocket.Server({
      host: 'localhost',
      port: 2000
});

 wss.on('connection', (ws) => {
      // 接続処理
  });

// ・・・

公開完了、URLにアクセスしてもらう

ngrokから払い出されたURLにアクセスします。
websocketなので、httpsではなかく、wssになるでしょう。
例では、wss://hoge.jp.ngrok.io でアクセスすれば通信できるはずです。

SSLが古いのかUnityでアクセスるときは、

ws.SslConfiguration.EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12;

を指定する必要がありました。

以上です。

Discussion