Dotcloud www и TCP в одном приложении -
Я пытаюсь запустить сервер сокетов nodejs, который позволит удаленно взаимодействовать между двумя клиентами, использующими игру Flash, которая общается по собственному протоколу. Из-за ограничений безопасности Flash создается впечатление, что сервер сокетов должен работать на том же хосте, что и веб-сервер, на котором размещается игра Flash. Я постоянно получаю следующую ошибку:
The service crashed at startup or is listening to the wrong port. It failed to respond on port "nodejs" (8080) within 30 seconds
Что мне нужно, так это способ запуска кода моего сервера nodeJS и одновременной подачи файлов флэш-памяти.
Я использую переменные среды JSON, чтобы определить, какой порт слушать, и мой YML похож на тот, который обсуждался здесь, но не повезло... Просто интересно, могу ли я получить некоторую информацию о том, как создать работающий сокет-сервер / веб сервер, который будет работать для этого (или, если это действительно возможно)
1 ответ
Вы можете использовать следующее dotcloud.yml
файл:
www:
type: nodejs
ports:
mything: tcp
Затем в приложении Node.js вы можете привязать HTTP-сервер к порту 8080, а произвольный TCP-сервер - к порту, содержащемуся в переменной среды. $PORT_MYTHING
, Тогда беги dotcloud info
к вашим услугам; в ports
раздел, вы увидите что-то вроде этого:
- name: mything
url: tcp://myapp-johndoe.dotcloud.com:12345
Отныне, если вы подключитесь к myapp-johndoe.dotcloud.com
в порту 12345
, вы на самом деле подключиться к $PORT_MYTHING
в вашем приложении.
Я надеюсь, что это имеет смысл, и это то, что вы искали!