Одноранговый чат с iPhone - PullRequest
1 голос
/ 30 июня 2011

Я знаю, сколько раз это запрашивалось на основе поиска в StackOverflow, но я все еще надеюсь, что кто-то может сказать мне, не прав ли я ...

Я создаю одноранговое приложение для чата для iPhone. Моя первоначальная идея состояла в том, чтобы избегать использования сервера, так что Bonjour пришел на ум. Я был счастлив писать код довольно долго и реализовал множество необычных функций, но два дня назад я начал тестирование с двумя клиентами из разных подсетей и обнаружил, что клиенты не могут соединяться друг с другом! Внезапно я понял, что Bonjour предназначен для локальных сетей и что DNS-сервер необходим для трансляции глобальных услуг. Мне действительно нужен сервер для интернет-однорангового чата? Существуют ли другие варианты, не связанные с использованием сервера на платформе iOS?

Ответы [ 3 ]

1 голос
/ 14 сентября 2011

Я нашел следующее из руководства разработчика Apple.Это должно ответить на ваш вопрос -

  1. Работает ли Bonjour между несколькими подсетями?

Да.Первый выпуск службы DNS Service Discovery (DNS-SD) для Mac OS X был сконцентрирован на многоадресной DNS (mDNS) для одноканальных сетей, поскольку эта среда хуже всего обслуживалась программным обеспечением IP.Начиная с Mac OS X 10.4, Bonjour теперь использует динамическое обновление DNS (RFC 2316) и одноадресные DNS-запросы, чтобы разрешить обнаружение глобальных служб.

1 голос
/ 12 июня 2013

Чтобы ответить на вопрос, единственный способ - это вынести список всех возможных участников и их текущий IP-адрес, а каждый возможный участник сообщать всем остальным каждый раз, когда их IP-адрес изменяется. Итак, если у вас есть 100 возможных участников, вы должны сообщить 99 другим, когда ваш IP-адрес изменится, и эти 99 должны сообщить вам, когда их IP-адрес изменится.

Bonjour может работать в локальной сети, глобальной или даже глобальной сети, но никогда не будет работать в Интернете.

Роль сервера заключается в том, что каждая конечная точка должна сообщать только одной конечной точке (серверу), когда она изменяется. Мой совет: найдите дешевый интернет-хостинг с базовыми возможностями PHP / MySQL и напишите себе очень простой скрипт для публикации и получения идентификаторов пользователей.

1 голос
/ 30 июня 2011

Мне интересно, как вы можете сделать приложение чата без использования сервера. Есть много дешевых решений, у Amazon есть собственный сервис, у Google тоже есть. Вы можете попробовать сначала, даже не заплатив ни цента.

...