Ответ 1
Heroku "не поддерживает" веб файлы в стеке Cedar еще (без слов, когда они будут) Обновление: см. ниже. Они рекомендуют добавить следующий код в реализацию Socket.io:
// assuming io is the Socket.IO server object
io.configure(function () {
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10);
});
Причиной этого является то, что Heroku добавляет слой маршрутизации поверх ваших динамиков. Ваш код будет выполнен на сервере, но он не является детерминированным в отношении того, какой сервер он будет. Таким образом, WebSockets не может отправлять данные на "правильный" сервер. Socket.IO перейдет к длинному опросу, который поддерживает соединение через уровень маршрутизации, гарантируя, что события будут выполняться на правильном сервере.
UPDATE: Heroku WebSockets теперь публично бета-версия! Вы можете добавить поддержку WS в свое приложение, выполнив heroku labs:enable websockets -a myapp
в своем каталоге приложения.