TCP и HTTP сервер развернут на облачной платформе - PullRequest
0 голосов
/ 02 ноября 2018

В университете у меня есть проект по созданию и развертыванию (на некоторых бесплатных облачных платформах) серверов TCP и HTTP (Node.js), работающих вместе.

У меня нет проблем с их запуском на локальном компьютере, но когда мне нужно развернуть их на облачной платформе, такой как Heroku, возникает несколько препятствий.

Первое небольшое вступление о проекте. У меня есть встроенные устройства, которые представляют клиенты TCP. Я мог бы сделать их серверами, но так как они находятся за NAT, нет возможности подключиться к ним в любой момент времени. Поэтому я решил сделать их TCP-клиентами. Эти встроенные клиенты TCP устанавливают соединение TCP с сервером TCP, развернутым на облачной платформе. Затем они могут отправлять и получать информацию с сервера без необходимости иметь статические публичные IP-адреса. Сервер TCP, с другой стороны, должен также иметь возможность обслуживать HTTP-запросы - от пользователей, которые хотят контролировать / контролировать конечные устройства (клиенты TCP (встроенные гаджеты)). Со временем число этих TCP-клиентов может возрасти.

Итак, некоторые из проблем, с которыми я столкнулся: Heroku clound поддерживает (в бесплатном режиме) только 5000 часов в месяц. Следовательно, сервер не будет отвечать на запросы во второй половине месяца, так как с клиентами поддерживается постоянное соединение. Сейчас я сосредоточен на Google Clould App Engine. Я думаю, что это будет доступно постоянно.

Проблема с этими облачными платформами заключается в том, что я не могу запустить два сервера в одном приложении и позволить им прослушивать разные порты (один порт для сервера TCP и один порт для сервера HTTP). Goog App Engine обязывает пользователей запускать свои серверы через порт 8080. Надеюсь, вы уже поняли мою дилемму.

Как заставить сервер TCP и HTTP работать вместе на облачной платформе?

...