xmpp聊天室(5)

聊天室

[cpp] view plaincopyprint?

  1. //初始化聊天室

  2. XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID];
  3. xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID];
  4. [xmppRoom activate:xmppStream];

  5. [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];

[cpp] view plaincopyprint?

  1. //创建聊天室成功

  2. - (void)xmppRoomDidCreate:(XMPPRoom *)sender

  3. {

  4. DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);

  5. }

[cpp] view plaincopyprint?

  1. //加入聊天室,使用昵称

  2. [xmppRoom joinRoomUsingNickname:@"quack" history:nil];

[cpp] view plaincopyprint?

  1. //获取聊天室信息

  2. - (void)xmppRoomDidJoin:(XMPPRoom *)sender

  3. {

  4. [xmppRoom fetchConfigurationForm];

  5. [xmppRoom fetchBanList];

  6. [xmppRoom fetchMembersList];

  7. [xmppRoom fetchModeratorsList];

  8. }

如果房间存在,会调用委托

[cpp] view plaincopyprint?

  1. // 收到禁止名单列表

  2. - (void)xmppRoom:(XMPPRoom *)sender didFetchBanList:(NSArray *)items;

  3. // 收到好友名单列表

  4. - (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items;

  5. // 收到主持人名单列表

  6. - (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items;

房间不存在,调用委托

[cpp] view plaincopyprint?

  1. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchBanList:(XMPPIQ *)iqError;

  2. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchMembersList:(XMPPIQ *)iqError;

  3. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchModeratorsList:(XMPPIQ *)iqError;

离开房间

[cpp] view plaincopyprint?

  1. [xmppRoom deactivate:xmppStream];

[cpp] view plaincopyprint?

  1. //离开聊天室

  2. - (void)xmppRoomDidLeave:(XMPPRoom *)sender

  3. {

  4. DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);

  5. }

其他代理

[cpp] view plaincopyprint?

    1. //新人加入群聊

    2. - (void)xmppRoom:(XMPPRoom *)sender occupantDidJoin:(XMPPJID *)occupantJID

    3. {

    4. DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);

    5. }

    6. //有人退出群聊

    7. - (void)xmppRoom:(XMPPRoom *)sender occupantDidLeave:(XMPPJID *)occupantJID

    8. {

    9. DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);

    10. }

    11. //有人在群里发言

    12. - (void)xmppRoom:(XMPPRoom *)sender didReceiveMessage:(XMPPMessage *)message fromOccupant:(XMPPJID *)occupantJID

    13. {

    14. DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);

    15. }

xmpp聊天室(5)

时间: 2024-12-08 16:21:00

xmpp聊天室(5)的相关文章

Android 基于XMPP Smack openfire 开发的聊天室

Android基于XMPP Smack openfire 开发的聊天室

通信——基于Xmpp协议实现的聊天室

前段时间写了个自定义通信协议的聊天室(即用\r\n标记字符串,作为一句话),总感觉自己弄的那个协议实现虽然简单,但是拓展性就太差了,只适合于发送聊天的内容,难以包含更多的信息.基于上述几点,于是就开始接触Xmpp协议,并自己定义了一个简单的Xmpp协议用以实现聊天室. 首先有2点要知道: 1.什么是Xmpp协议?   Xmpp协议是一种通信协议,有自己的规则,即用Xml格式的消息进行通信. 2.Xml串的例子.   <msg><name>laoyang</name>&l

如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题

CHENYILONG Blog 如何#解决方案#群聊(MUC)聊天室重复存储.接收自己发送的消息 编号 项目 描述 1 问题描述 单聊没问题,群聊会出现自动回复的问题 数据库中存储的数据出现的问题 界面上出现的问题:类似自动回复.回音壁一样一模一样地回答.  2 问题产生的原因 3 群聊基本的原理示意图 聊天内容的显示是经由从数据库进行的读取排序, 4 #解决方案# 拦截阻挡红色区域的执行  5 失败的尝试:尝试但是没有效果的方法 // AppDelegate.m中#pragma 接收消息代理监

android asmack 注册 登陆 聊天 多人聊天室 文件传输

XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的.它继承了在XML环境中灵活的发展性.因此,基于XMPP的应用具有超强的可扩展性.并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍.利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信. 这篇文章有基本的介绍,http://bl

使用WebRTC搭建前端视频聊天室——信令篇

博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址)和SkyRTC-client(github地址) 这两个库和demo都是我写的,如果有bug或是错误欢迎指出,我会尽力更正 前面的话 这篇文章讲述了WebRTC中所涉及的信令交换以及聊天室中的信令交换,主要内容来自WebRTC in the real world: STUN, TURN and s

使用WebRTC搭建前端视频聊天室——入门篇

http://segmentfault.com/a/1190000000436544 什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器.乙和服务器之间建立信道.甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样.这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽.同时这样的信道并不适合数据流的传输,如何建立浏

Converse.js – 开源的 XMPP 聊天客户端

Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMPP/Jabber 服务器. 在线演示      插件下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果[源码下载] 12款经典的白富

Python Socket 编程——聊天室演示样例程序

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu

自写聊天室_LinuxC实现(4)——项目文档

西邮Linux兴趣小组  暑期项目 项目名称:    happychat        项目作者:      楚东方     1. 引言 1.1 项目综述 对项目进行简要介绍,并说明编写此项目的目的. 该项目为聊天室,主要为了实现聊天,文件传输,方便linux环境下的,交流与聊天. 实现功能: 1.好友管理: (1)添加好友 (2)删除好友 2.群管理 (1)创建群 (2)加群 (3)退群 (4)解散群 3.文件传送 实现了上传和下载的断点续传 4.聊天界面分屏 利用光标的移动对输入和屏幕聊天记