Отправить UITouches через сеть - PullRequest
2 голосов
/ 29 августа 2010

Я создаю приложение, которое позволяет пользователю рисовать на экране. Я хотел бы добавить возможности сети, чтобы пользователь A мог рисовать на экране пользователя B. Мой текущий план состоит в том, чтобы создать систему, в которой у меня есть свой собственный объект UserOrNetworkTouch, который может быть создан на основе реального UITouch или сообщения, поступающего по сети, и основывает весь рисунок в приложении на событиях UserOrNetworkTouch, а чем события UITouch.

Еще одна вещь, для которой я хочу использовать эту систему, - это запись касаний, чтобы пользователь мог нажать «запись», а затем воспроизвести их рисунок позже.

Я бы хотел убедиться, что я не изобретаю колесо здесь. Существуют ли какие-либо библиотеки, которые будут обрабатывать некоторые или все это для меня?

Ответы [ 2 ]

3 голосов
/ 29 августа 2010

Вы, вероятно, не отправите объекты UITouch по сети (хотя вы могли бы, если хотите). Затем я мог бы упаковать позиции в какую-то структуру и просто отправить ее, чтобы уменьшить объем передаваемого вами трафика. Если вам нужен весь объект UITouch и все его данные, то обязательно отправьте объект на свой сервер.

Вы можете использовать CFNetwork framework для отправки данных на сервер из вашего клиентского приложения. Если вы это сделаете, вы должны действительно попытаться использовать IPv6.

У Apple есть пример кода для работы с CFNetwork streams

Если вы хотите записать события касания, просто используйте NSArray или NSDictionary, если вы хотите сохранить, скажем, касание вместе с отметкой времени, когда произошло касание.

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

Обновление: Я бы не стал тратить ваше время на образец кода Apple WiTap. Я уже читал об этом раньше, и в нем много кода, который просто сбивает с толку и не имеет значения, если вы хотите, чтобы простое клиент-серверное приложение было запущено и работало быстро. Скорее всего, это будет слишком запутанным для вас, если вы раньше не занимались сетевым программированием.

Сначала я получу сетевые передачи, а затем, если хотите, вы можете обратиться к WiTap для сетевой части Bonjour, чтобы вы могли выполнить автоматическое обнаружение клиента и сервера. Но добавляйте поддержку Bonjour только после того, как у вас сначала будут работать потоки данных.

0 голосов
/ 29 августа 2010

Хорошее место для начала - образец WiTap от Apple . Он настраивает игру на Bonjour и отправляет метки туда-сюда.

Также посмотрите на GameKit, который сделает некоторые сети еще проще.

БД SQLite была бы отличным местом для записи событий. Ищите оболочку SQLite 'fmdb' для красивой оболочки Objective-C.

...