Git Product home page Git Product logo

dollarss's Introduction

Dollarss

An Instant Message Client by XMPP on iPhone

使用XMPP实现的iPhone上的聊天工具。

只完成了一小部分功能。

  • 登录和注册;
  • 获取联系人列表;
  • 添加好友;
  • 接受好友;
  • 与好友聊天;
  • 获取多人聊天房间列表;
  • 加入房间;
  • 房间内多人聊天;
  • 修改个人状态;

演示视频

群组聊天 群组

状态 好友聊天

目录结构

  • /Drrr: 封装XMPP Framework,实现具体功能;
  • /Dollarss: 实现iPhone客户端界面;
  • /XMPPFramework

项目依赖

  • XMPPFramework: 只使用了Core功能,extensions只使用了Reconnect;
  • 项目本身没有使用CoreData;
  • 不支持arc;

Drrr

包括几个主要的部分

链接

  • DRRRManager: 一个单实例,通过 [DRRRManager sharedManager]获取,用来管理和Jaber服务器的链接,发送xml数据等。 DRRRManager被其他各个功能模块使用。

消息:

  • DRRRMessageContent:一个消息的条目(Message),对应XMPPMessage
  • DRRRMessage:整个消息列表,包括和每个联系人(聊天房间)的对话列表,DRRRMessage是一个单实例,通过[DRRRMessage sharedMessage]获取,他里面是一个messageBundle的NSDictionary,聊天者的jid就是key,value就是对话内容的列表,列表中是每一条消息,也就是DRRRMessageContent;接收到的好友邀请和房间邀请也是一个message content; 通过DRRRMessage 来发送消息。

联系人

  • DRRRRoster:是整个联系人列表,他是一个单实例,通过[DRRRRoster sharedRoster]获取。通过DRRRRoster来获取联系人信息,修改当前登录用户的状态,订阅和接受联系人邀请;
  • DRRRRosterMember:一个联系人条目;

聊天室

  • DRRRChatRoomManager:一个单实例,通过[DRRRChatRoomManager sharedChatRoomManager]获取,他负责管理聊天室功能各个具体操作;
  • DRRRChatRoom:对应一个聊天室的房间,包括一个成员列表memberList,和房间信息chatRoomInfo;
  • DRRRChatRoomInfo: 一个聊天室的信息,包括一个NSArray 的features,和 NSDictionary的fields;
  • DRRRChatRoomInfoField: DRRRChatRoomInfo中fields中的每一个value都是一个DRRRChatRoomInfoField, 这样的结果只是为了对应XMPP返回来的数据格式;
  • DRRRChatRoomMember: 一个聊天室成员,包括角色,状态等;

dollarss's People

Contributors

adow avatar

Watchers

James Cloos avatar topws avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.