Как масштабировать приложение Heroku, использующее Nowjs?

Масштабирование моего веб-приложения до 2 веб-процессов на Heroku ломает Nowjs/Sockets.io.

Я использую новый для меня полный стек, и все работает отлично, пока я не добавлю второй веб-процесс. Node.js по-прежнему отвечает нормально, но Nowjs перестает отвечать. Я получаю 503 ответа в браузере и

GET musicbacon.com/socket.io/1/?t=1339117661910 dyno=web.2 queue=0 wait=0ms service=2ms status=200 bytes=82
2012-06-08T01:07:42+00:00 heroku[router]: Error H13 (Connection closed without response) -> GET musicbacon.com/socket.io/1/websocket/12401614301555103827 dyno=web.2 queue= wait= service= status=503 bytes=

на сервере.

Я думаю, что Nowjs (который является уровнем абстракции поверх Socket.io) создает свой собственный сервер рядом с моим сервером Node.js. Масштабирование Heroku запускает новую виртуальную машину сервера Node.js, но, поскольку Now.js еще не совместим с распределенными средами, он просто умирает.

Надеюсь, я что-то упускаю, и я могу масштабировать Now.js, потому что 1 веб-процесс Heroku, по моему опыту, может обрабатывать только около 60 пользователей одновременно.

Полная ставка: Heroku Node.js Express Jade Now.js Postgres

Справочник по ошибке H13: https://devcenter.heroku.com/articles/error-codes#h13__connection_closed_without_response


person David Shellabarger    schedule 08.06.2012    source источник


Ответы (1)


WebSockets не работают на Heroku, вам нужно изменить конфигурацию Socket.IO, чтобы отключить WS:

person alessioalex    schedule 08.06.2012
comment
Он также может попробовать один из аддонов Heroku. - person Hauleth; 08.06.2012
comment
Твое право! Это возвращалось к xhr-опросу, и я этого не осознавал. Спасибо! - person David Shellabarger; 09.06.2012