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 в вашем приложении.

Я надеюсь, что это имеет смысл, и это то, что вы искали!

Другие вопросы по тегам