そこで、最近 PeerJS アプリを heroku にデプロイしました。次のような PeerJSserver のインスタンスを作成しました: (github ページに記載されているとおり)
// determining the port
var port = Number(process.env.PORT || '3000');
var server = app.listen(port, function() {
console.log('Server is running on port ' + port);
});
// peerjs server setup
var peerServer = ExpressPeerServer(server);
app.use('/app', peerServer);
peerServer.on('connection', function(id) { console.log(id); });
クライアント側では、次のようにこのサーバーに接続します。
<script>
var peer = new Peer('someid', {host: '/', port: 9000, path: '/app'});
</script>
問題:
つまり、heroku がアプリを実行するポートをランダムに決定することは既にご存じでしょう。ログを確認すると、サーバーが実行されているポートを確認できます。では、クライアント側でポートを特定するにはどうすればよいでしょうか? オブジェクトコンストラクターにポートを与えないようにしましたが、自動的に9000のポートが与えられます(これがデフォルトだと思います)。
では、サーバーにクエリを実行してそのポートを特定する必要がありますか? または、より良い代替手段はありますか?