MEANスタックとSocket.ioで作ったアプリをHerokuにデプロイしようとしたら、Angularでサーバーの動的PORTが取得できなくて困っています。
そもそもHerokuではポートが固定ではなく、動的に変わるらしいです。
Nodejsの側では「process.env.PORT」変数で取得できるのに、Angular側のenvironment.prod.tsでは取得できません。
何か「process.env.PORT」変数で取得する以外に代替手段はあるのでしょうか?
一応、StackOverflowで似た様な質問(以下記載)を見つけたのですが、いまいち理解できずにいます。
https://stackoverflow.com/questions/33977845/socket-io-doesnt-work-in-production
https://stackoverflow.com/questions/36676815/nodejs-socketio-multiple-files
https://stackoverflow.com/questions/54156848/how-can-i-apply-the-heroku-generated-server-port-to-my-front-end-vue-js-app__イタリックテキスト__
以下 ソースコード
Github
https://github.com/Mori-Chan/Angular-async-means
該当コード
environment.prod.ts
1// ここをどの様に記述すれば良いのかがわかりません。 2export const environment = { 3 production: true, 4 SOCKET_ENDPOINT: 'https://angular-async-means.herokuapp.com' 5};
socketio.service.ts
1this.socket = io(environment.SOCKET_ENDPOINT);
server/index.js
1const PORT = process.env.PORT || 3001; 2 3httpServer.listen(PORT, () => console.log('Express server listening on port ' + PORT));
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/20 06:19