socket.io и pm2 запускают process.yml - PullRequest
0 голосов
/ 02 июня 2018

Мое игровое приложение javascript не будет работать, когда я использую pm2 start process.yml.Игра отлично работает, когда я использую npm start, но не pm2 start process.Файл index.js на сервере загружается, но затем выдает мне ошибки, такие как:

WebSocket connection to 'ws://www.zeyeland.com:3000/socket.io/?EIO=3&transport=websocket&sid=gwcGq7h5vHrxBGOyAAAA' failed: WebSocket is closed before the connection is established.

и

GET http://www.zeyeland.com:3000/socket.io/?EIO=3&transport=polling&t=MEzN2OK&sid=gwcGq7h5vHrxBGOyAAAA 400 (Bad Request)

Еще раз моя программа работает нормально, когда я запускаю свой сервер, используя npm start.

Вот мой файл process.yml

apps:
  - script: node index.js
    watch: true
    instances: 4
    exec_mode: cluster
    env:
      NODE_ENV: development
    env_production: 
      NODE_ENV: production

package.json

{
    "name": "sockets",
    "version": "0.0.1",
    "description": "web sockets demo",
    "scripts": {
        "start": "node index.js"
    },
    "dependencies": {
        "express": "^4.16.3",
        "socket.io": "^2.1.1"
    }
}

В чем может быть проблема?Это как-то связано с моим apache2 reverseProxy?Ранее я получал похожую ошибку, когда пытался настроить свой обратный прокси-сервер для приложения nodejs, работающего на zeyeland: 3000 для zeyeland / bomber-kids-online.

Код, который я добавил в свой файл .bashrc на своем сервере для настройки кластеров pm2,

cd /var/www/html/bomber-kids && pm2 start process.yml && cd ~

Когда я запускаю pm2 start process.yml, кластеры запускаются икажется, что все работает, пока я не захожу на веб-сайты, а затем игра выдает ошибку консоли из-за проблем с сокетами.

1 Ответ

0 голосов
/ 03 июня 2018
Режим кластера

pm2 плохо работает с socket.io sticky-сессией.Смотрите мой вопрос здесь Как заставить липкий сеанс работать с socket.io?

Вы можете заставить socket.io использовать websocket

...