Я пытаюсь создать некоторые базовые реализации простых игр (tic tac toe - это начальный проект), который можно воспроизводить через Интернет, не требуя центрального сервера. Эта страница даже не должна быть размещена и может быть запущена локально на машине, или она может быть размещена на веб-сервере. При размещении игры страница сообщит об этом хозяину своего IP-адреса, который затем может быть отправлен другим способом (телефону, мгновенному сообщению и т.д.) Другу. Этот друг вводит или копирует/вставляет IP-адрес в диалог соединения и может играть в игру. Я бы хотел, чтобы эти 2 участника могли это сделать без установки какого-либо дополнительного программного обеспечения и без обращения к центральному серверу любого типа.
Я рассмотрел множество потенциальных решений с участием node.js, webrtc, websockets, flash, java и т.д. У каждого из них есть проблема, связанная с ним, например, требующая центрального сервера или требующая от клиента возможно, придется загружать что-то, что еще не установлено на их компьютере, или передавать только аудио и видео и не полезно для отправки сообщений данных. Может показаться тривиальным сказать кому-то, что им нужно скачать java.. или мне разработать приложение со вспышкой, но это все противоречит моим конечным целям.
Если просто невозможно сделать то, что я пытаюсь сделать полностью в javascript, тогда это просто невозможно. Но я не понимаю, почему этого не может быть, учитывая, что браузеры способны самостоятельно отправлять и получать текстовые данные в URLS, которые разрешают IP-адреса или напрямую к IP-адресам. Другие решения приветствуются, но если это невозможно сделать, это действительно должно быть.
Простое объяснение точных требований к тому, что я пытаюсь сделать:
-
Следует использовать полностью бесплатные (как в пиве) технологии. (без вспышки, я понимаю, что веб-приложения для флеш-плеера могут быть закодированы бесплатно, но для сверстников в страте требуется регистрация бета-ключа, который, предположив, что я могу получить бесплатно, не обязательно останется свободным навсегда.)
-
Нет внешних серверов или ложных одноранговых узлов. (опять же, как во флэш-или единичных решениях, где имитация одноранговой сети может быть достигнута до тех пор, пока вы используете свой центральный сервер)
-
Нет загрузки клиента (конечно, у большинства людей установлена java или флеш-память, но многие этого не делают, а java - довольно тяжелая загрузка и не дружелюбная для неграмотных пользователей компьютера. Она даже пытается установить панели инструментов сейчас. В дополнение к этому многие мои пользователи не захотят скачивать что-либо вообще, в том числе java или единство. У кого есть свои проблемы, связанные с этим проектом, как уже упоминалось)
Итак, если ajax может отправить запрос на указанный IP-адрес и прослушать ответ. Почему я не могу получить простой обмен сообщениями в чистом js? Или я могу?
Мне не нужно размещать полномасштабный веб-сервер или отдельное приложение или плагин любого типа для отправки и получения данных.
Я что-то пропустил?