2012-03-16 3 views
2

Я разрабатываю приложение, в котором одно устройство iOS действует как «сервер», а другие устройства действуют как клиенты. Im получая трудное время с пониманием, если я могу сделать это с помощью BonjourBonjour - один сервер несколько клиентов - ios iPhone

Если я пример: +++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++ Все устройства имеют одинаковое приложение. Все пользователи подключены к одному и тому же WIFI.

Пользователь должен войти в приложение, и когда это произойдет, чаты заполняются с CMS (веб-сервера) из Интернета.

Все они видят, например, все «чаты». Но в начале чаты доступны только для чтения. Любой может просмотреть их, но никто не может их записать.

Когда администратор (пользователь с правами администратора) открывает один из чатов; все клиенты теперь могут писать в «открытые» чаты.

Конечно, когда один пользователь что-то пишет, другие пользователи видят последний комментарий от него.

Администратор должен видеть всех клиентов в чате, но клиенты не могут видеть друг друга.

++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++

Все образцы, которые я нашел (WiTap, видео из WWDC, ...) используются только два устройства. Я установил WiTap на 4 устройства. И я могу установить соединение и работать с «образцовой» игрой с двумя устройствами.

Можно ли использовать сервис Bonjour таким образом, чтобы несколько клиентов были подключены к одному «серверу»?

Любые подсказки приветствуются!

+0

Вы говорите, что чаты являются веб-сайтами. Затем администратор может блокировать/разблокировать чаты через веб-сервер, а все приложения (в том числе админы) работают как клиенты. Или вы говорите, что приложение admins также работает как WEB-сервер? –

+0

У вас есть точка ... но писать в чате можно только для клиентов, которые подключены к сервису Bonjour. Другие клиенты (дома или в другом WIFI) не смогут писать в чат-комнату. –

+1

Хмм, Bonjour на самом деле занимается объявлением службы в определенной сети. Например: если у вас есть аппаратное устройство (или приложение), которое действует как сервер (может быть telnet, HTTP, пользовательский TCP ...) он может объявить себя через Bojur. Клиенты найдут IP-порт через Bojur, вот и все. С этого момента «соединение с» и «общение с» этот сервер не имеет ничего общего с Bonjour. Я имею в виду: вы не подключаетесь к сервису Bonjour. Вы можете объявить о своем сервисе через Bonjour, чтобы другие могли вас найти. И вы можете наблюдать, какие услуги объявляются на «местном» Bonjour. –

ответ

0

Да, Bonjour можно использовать так: например, Apache на Mac OS X имеет mod_bonjour, чтобы веб-браузеры могли найти веб-сервер в локальной сети. Это может означать наличие одного сервера, но нескольких браузеров: именно то, что вы описываете.

Одно из ограничений заключается в том, что способ, которым Bonjour настроен в iOS, означает, что сервер и клиенты должны находиться в одной и той же локальной сети. Не похоже, что описанная вами ситуация совместима с использованием Bonjour таким образом, но тогда я также не думаю, что вам нужно. Вы можете использовать DNS-имя своего чат-сервера в приложении, чтобы любое приложение могло обнаружить сервер. Сервер также может нести ответственность за обнаружение подключенных клиентов и позволяет людям находить друг друга (действительно, я думаю, для этого предназначены чаты).

+0

Да, клиенты этой ситуации будут в одной сети. И ваш ответ звучит интересно; Я буду копаться в ваших предложениях. –

0

Это хорошее место для начала. http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/ У меня есть один и тот же Сервер и клиент с помощью chatty. Но вы столкнулись с одной проблемой только в iOS5, когда iphone перейдет в спящий режим, сокет потерян. Я не могу решить эту проблему. Итак, ища помощи. :)

Смежные вопросы