API для обмена мгновенными сообщениями

#objective-c #cocoa #macos #instant-messaging

#objective-c #cocoa #macos #обмен мгновенными сообщениями

Вопрос:

Мне нужно всего лишь простое приложение Objective-C или API, которое может отправлять и получать мгновенные сообщения одному пользователю.

ГОЛЫЕ КОСТИ.

Я посмотрел Skype, но часть Objective-C выглядит действительно устаревшей. Предпочтительнее использовать AIM, но идеально подойдет все, что может отправлять и получать мгновенные сообщения.

Существует ли API для этого? Для AIM или Skype?

Примеры были бы оценены, и помните, я совершенно новичок в Obj-C.

Комментарии:

1. Что вы имеете в виду, говоря, что вам нужно приложение или API? Вы пишете IM-клиент? На самом деле это не то место, где можно запрашивать рекомендации сторонних приложений.

2. Нет, мне не нужно «приложение». Я хочу найти фреймворк или пример кода, который поможет мне создать IM-клиент. Хотя и ПРОСТОЙ. отправлять и получать сообщения.

3. Тогда вам нужен пример кода или приложение, исходный код которого открыт? Не могли бы вы, пожалуйста, отредактировать свой вопрос, чтобы прояснить это?

Ответ №1:

Я не знаю насчет simple или bare bones, но Adium — хороший IM-клиент с открытым исходным кодом для OS X, написанный на Cocoa.

UDPATE: Возможно, вы захотите ознакомиться с этим сообщением в блоге («На пути к XMPP-платформе с открытым исходным кодом для Cocoa»). Похоже, автор тоже хотел создать свой собственный фреймворк Jabber / XMPP Cocoa и даже создал для него проект в Google Code.

Комментарии:

1. Я посмотрел на это. Но это слишком над моей головой.

2. code.google.com/p/xmppframework/downloads/list — Могу ли я не загружать код? Спасибо!

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

4. Отлично! Спасибо! — Я сейчас это проверю. Я дам вам знать, если это сработает.

Ответ №2:

В настоящее время я работаю над реализацией протокола OSCAR (AIM) на Objective-C. Он обновляется на GitHub. Если я правильно понимаю, что вы хотите сделать, библиотека, хотя и неполная, будет соответствовать вашим потребностям. Он может отправлять и получать сообщения, а также работать с сообщениями о состоянии. Он также может прочитать список друзей, если вас это интересует. Вся библиотека должна быть готова к концу месяца, и вы можете проверить это на GitHub:

https://github.com/unixpickle/LibOrange

Войти в систему так просто:

  login = [[AIMLogin alloc] initWithUsername:username password:password];
 [login setDelegate:self];
 if (![login beginAuthorization]) {
     NSLog(@"Failed to start authenticating.");
     abort();
 }
  

После входа в систему отправка сообщений работает следующим образом:

  AIMMessage * reply = [AIMMessage messageWithBuddy:[message buddy] message:@"Test"];
 [theSession.messageHandler sendMessage:reply];
  

Очевидно, вы можете ознакомиться с образцом на GitHub, но я подумал, что выложу этот пример кода, чтобы утолить ваш аппетит. Наслаждайтесь!

Ответ №3:

Я не знаю точно, насколько сложно это было бы использовать, но разве нет библиотеки с открытым исходным кодом для доступа к IMS под названием libPurple? возможно, вам стоит проверить это и посмотреть, что это может сделать в Xcode.

Ответ №4:

Если это предназначено для мелкомасштабного развертывания, было бы довольно легко развернуть свое собственное, используя распределенные объекты. Я слышал, что может быть проблематично пытаться использовать DO для интернет-сервиса с высоким трафиком.