Как сделать одноранговое общение в приложении для iPhone? - PullRequest
7 голосов
/ 12 октября 2010

Я пытаюсь написать простое приложение для чата для iPhone (в качестве эксперимента). Существует ли простой способ для двух устройств обнаруживать IP-адреса друг друга, и, учитывая адреса, существует ли простой API или протокол, который позволял бы мне отправлять текстовые сообщения туда и обратно?

Я исследовал SIP (в частности, Софию и eXosip), но эти инструменты существуют как библиотеки C и выходят за пределы моей нынешней возможности портировать их на iPhone.

Обновление: Я пытаюсь подключить два устройства через Интернет (т. Е. Не через Bluetooth или локальную беспроводную сеть, что делает GameKit).

Ответы [ 4 ]

4 голосов
/ 12 октября 2010

Вам понадобится сервер, который предоставляет услуги по подбору матчей. Game Center делает это довольно легко, но у ваших пользователей должны быть учетные записи Game Center.

В качестве альтернативы, вы можете настроить сервер XMPP (ранее Jabber, именно он поддерживает Google Chat) (я никогда не делал этого, но есть несколько доступных) и использовать XMPP Framework для Cocoa . Инструкции по его использованию в приложениях для iPhone здесь .

Я уверен, что есть и другие чат-серверы и клиентский источник. IRC и Mobile Colloquy приходят на ум.

Наконец, вы можете написать свой собственный сервер, используя ваш любимый язык / структуру сервера. Это не так сложно (я сделал это сам), но это далеко от того, что я бы назвал простым, и я бы не стал использовать его для производственной системы.

2 голосов
/ 12 октября 2010

В GameKit есть поддержка именно такого рода одноранговых сетей.Посмотрите вторую половину документации GameKit для деталей:

http://developer.apple.com/library/ios/#documentation/...

1 голос
/ 28 апреля 2016

Взгляните на Каналы данных WebRTC . WebRTC - это более новый вариант с встроенной поддержкой iOS - стандартом, который все еще дорабатывается, но он более гибок, если приложение iOS должно взаимодействовать с браузером или даже android пэры

1 голос
/ 25 октября 2013

NSNetService - хороший вариант.

...