ElasticBeanstalk 上の NodeJS が80番ポートへのアクセスを受けるまでの流れ

Elastic Beanstalk の NodeJS アプリケーションを作成すると
80 ポートでアクセスできる Web アプリケーションが簡単に出来上がる。

しかし NodeJS は 80 番ポートとは異なるポート 8081 番を Listen しており、
どういった経路で 80 番からのアクセスを受けているのか調べて Qiita に投稿した。

このあたりのことが理解できていないとポートを変えたいときとか困るかもしれない。

socket.io-php-emitter 0.7.0が動作しない問題

2016年09月16日時点で rase/socket.io-php-emitter 0.7.0 は2年ほどメンテナンスされておらず、互換性の問題があり emit しても動作しません。

Redis のチャンネル名と msgpack のフォーマットが変更されたことが原因のようです。

socket.io-redis 1.0.0以上を使う場合は、有志の方が作成した ashiina/socket.io-emitter の0.8.0以上を使いましょう。
尚、socket.io-redis 0.2.0 は手元で試していないので分かりません。

修正内容

composer.json (php)

{
    "name": "sample-client",
    "type": "project",
    "require": {
        "ashiina/socket.io-emitter": "^0.8.0"
    }
}
  • 修正前: "rase/socket.io-emitter": "^0.7.0"
  • 修正後: "ashiina/socket.io-emitter": "^0.8.0"

package.js (nodejs)

{
  "name": "sample-server",
  "main": "index.js",
  "dependencies": {
    "express": "^4.10.2",
    "socket.io": "^1.4.8",
    "socket.io-redis": "^1.0.0"
  }
}

参考情報