В настоящее время я создаю приложение, посвященное VOIP/случайному чату, которое похоже на skype или chatroullet. Мой вопрос заключается в расширении этого
Я экспериментировал и играл с сокетами TCP/UDP, и теперь у меня есть возможность создавать приложения VOIP/мгновенного чата. Но, как вы уже знаете, для передачи данных между клиентом и клиентом или сервером серверное приложение должно быть включено (другими словами, быть в сети) и быть доступным клиентскими приложениями. Проблема в том, что я не живу сам по себе, но со своей семьей, и я не могу просто использовать один из своих компьютеров для запуска своего серверного приложения в течение 24/7 в основном из-за счетов за электроэнергию и отсутствия знаний о сеть беспокоит меня о безопасности, потому что мне пришлось пройти через конфигурацию/переадресацию портов на моем текущем маршрутизаторе, чтобы сделать протокол доступным для других пользователей за пределами моей локальной сети. Поэтому мой самый большой вопрос в том, как люди или разработчики обычно имеют дело с такими ситуациями? Они просто использовали свой собственный компьютер для запуска серверного приложения? или они приобрели внешнюю машину для запуска серверного приложения
===========================================
Дополнительный вопрос:
Является ли сокет TCP/UDP единственным способом создания таких приложений, как MMO, VOIP и программы мгновенного чата?
я вижу, что ваша тема была закрыта в предыдущем потоке. Я думаю, что такие вопросы не связаны с stackoverflow.
Тем не менее, я хотел бы дать вам представление о том, что происходит с большинством из нас, кто владеет/делает Java Web Applications. Я работал в центре обработки данных в течение полутора лет. Приложениям Java немного сложнее разместить онлайн, так как им требуются ресурсы, которые не так много центров обработки данных готовы вкладывать время и поддержку. Кроме этого, они довольно просты, как обычные PHP-приложения.
Вам понадобятся стандартные параметры, такие как Colocation
, Dedicated Server
, VPS
, Cloud Virtual Machine
или shared tomcat
application server
shared tomcat
/application server
.
Colocation
- это место, где вы размещаете свой собственный приобретенный и настроенный сервер с центром обработки данных, у вас есть полное владение сервером, никто не может его коснуться, если только это не разрешено самим собой. Вы платите, чтобы поместить ваш сервер в центр обработки данных и заряжены всем, что происходит на сервере, включая патч ОС.
Обычно серверы в центрах обработки данных (из-за ограничения размера) входят в стойку. 1U относится к 1 стойке, обычно это эквивалентно одному ПК, хотя сервер намного эффективнее. В Сингапуре плата за U составляет SG 200 долларов.
Dedicated server
- это место, где вы арендуете сервер из центра обработки данных. Сервер управляется центром обработки данных и может быть настолько мощным, насколько вы хотите. Обновления ОС, установки, гарантии обслуживания предоставляются центром обработки данных.
VPS
имеет часть ресурса сервера, но многие из них бросают вызов тому, что у вас нет "корневого" доступа к серверу в большинстве случаев.
Cloud
- это виртуализация всей операционной системы. Если бы это был Linux, у вас был бы root-доступ к нему. Многие из нас сейчас используют этот вариант из-за его масштабируемости. Некоторые центры обработки данных могут использовать популярные гипервизоры виртуализации, такие как VMware ESXi, Microsoft Hyper V.
Перечень выше представлен с самого дорогого до наименьшего. Конечно, это зависит от вашего местоположения и поставщика услуг.
Вряд ли кто-нибудь, кого я знаю, пытается поставить домашний сервер дома, это сама опасность пожара, вы не узнаете, когда ваше электричество будет отключено, стандартная выделенная пропускная способность будет столь же дорогостоящей.
На мой взгляд, хостинг с центром обработки данных будет очень экономичным и безопасным.
EDIT: Является ли TCP/UDP-сокет единственным способом создания таких приложений, как MMO, VOIP и программы мгновенного чата?
Вы рассматривали HTML 5 Web Sockets или какую-либо структуру AJAX для этого?
Попробуйте искать в Интернете облачный хостинг. Например, Heroku, AWS и многие другие предоставляют размещенную службу. Это то, что люди используют для размещения своих услуг, и это более выгодно, чем пытаться сохранить что-то самостоятельно.
Вы также пишете приложение для Android? Как и в стороне, вы можете использовать этот инструмент ARO, чтобы обеспечить эффективную работу сети. http://developer.att.com/developer/legalAgreementPage.jsp?passedItemId=9700312