聊天室

  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()];
  1. //创建聊天室成功
  2. - (void)xmppRoomDidCreate:(XMPPRoom *)sender
  3. {
  4. DDLogInfo(@"%@: %@", THIS_FILE, THIS_METHOD);
  5. }
  1. //加入聊天室,使用昵称
  2. [xmppRoom joinRoomUsingNickname:@"quack" history:nil];
  1. //获取聊天室信息
  2. - (void)xmppRoomDidJoin:(XMPPRoom *)sender
  3. {
  4. [xmppRoom fetchConfigurationForm];
  5. [xmppRoom fetchBanList];
  6. [xmppRoom fetchMembersList];
  7. [xmppRoom fetchModeratorsList];
  8. }

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

  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;

房间不存在,调用委托

  1. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchBanList:(XMPPIQ *)iqError;
  2. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchMembersList:(XMPPIQ *)iqError;
  3. - (void)xmppRoom:(XMPPRoom *)sender didNotFetchModeratorsList:(XMPPIQ *)iqError;

离开房间

  1. [xmppRoom deactivate:xmppStream];
  1. //离开聊天室
  2. - (void)xmppRoomDidLeave:(XMPPRoom *)sender
  3. {
  4. DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
  5. }

其他代理

    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)的更多相关文章

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

    Android基于XMPP Smack openfire 开发的聊天室(一)[会议服务.聊天室列表.加入] http://blog.csdn.net/lnb333666/article/details ...

  2. [XMPP]简易的聊天室实现[二](使用CocoaAsyncSocket)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

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

    前段时间写了个自定义通信协议的聊天室(即用\r\n标记字符串,作为一句话),总感觉自己弄的那个协议实现虽然简单,但是拓展性就太差了,只适合于发送聊天的内容,难以包含更多的信息.基于上述几点,于是就开始 ...

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

    博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址 ...

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

    http://segmentfault.com/a/1190000000436544 什么是WebRTC? 众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转.比如现在有两 ...

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

    Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMP ...

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

    XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的 ...

  8. gloox配置聊天室

    gloox配置聊天室 (金庆的专栏) gloox是XMPP协议的C++客户端库.以下代码测试创建多人聊天室(MUC), 并进行配置.参照gloox中的muc示例代码.gloox代码示例中没有聊天室的配 ...

  9. 教你如何把openfire的muc聊天室改造为群

    openfire群聊与QQ群对比 应该是去年的时候开始接触openfire,当时在分析后发现基于xmpp协议的openfire已经具备了群聊的功能.也就没太当回事,觉得加点功能就可以做成类似于QQ群的 ...

随机推荐

  1. SQLServer2012连接数据库报错

    尝试读取或写入受保护的内存 这通常指示其他内... CMD 输入 netsh winsock reset,重启计算机即可

  2. nohup 程序在后台运营 避免 xshell 卡死 通过 nohup.out分析调取系统命令时的异常分析

    nohup  程序在后台运营 避免 xshell  卡死 [root@admin1 after_fc_distributed]# nohup /root/anaconda3/bin/python da ...

  3. Vijos 1565 多边形 【区间DP】

    描述 zgx给了你一个n边的多边形,这个多边形每个顶点赋予一个值,每条边都被标上运算符号+或*,对于这个多边形有一个游戏,游戏的步骤如下:(1)第一步,删掉一条边:(2)接下来n-1步,每步对剩下的边 ...

  4. ios26--kvc

    // // main.m // 13-KVC的使用 // /** KVC: Key Value Coding(键值编码):1.取值赋值.2.字典转模型. */ #import <Foundati ...

  5. 编程细节 —— 按值传递、按引用传递(final、const)

    System.out,out 是 System 类内定义的静态 final PrinterStream 变量: public final class System { ... public final ...

  6. 提交图片base64格式问题

    提交图片base64格式给后台,一定把data:image/png;base64,去掉,不然提交后后台返回的图片URL打开是一个破坏的图片.使用split("base64,")[1 ...

  7. 浙江省CIO协会钱塘江论坛近日在网易云创沙龙宣布成立

    本文来自网易云社区 9月19日,由网易云与浙江省首席信息官协会共同主办的“网易云创CIO沙龙”在杭州举行,本次活动以“瞩目钱塘,赋能企业数字化创新”为主题,网易云企业服务部总经理岳峥辉,浙江省首席信息 ...

  8. 【WIP】C基础语法

    创建: 2017/06/17 更新: 2017/10/14 标题加上[WIP],增加创建时间 更新: 2018/02/05 被Objective-C引用部分加上id方便链接,代码放进代码模板      ...

  9. [App Store Connect帮助]六、测试 Beta 版本(4.3) 管理 Beta 版构建版本:为 Beta 版构建版本提供出口合规证明

    如果您没有完成出口合规证明,则该 Beta 版构建版本的状态为“缺少合规证明”.您可以在 TestFlight 部分中回答必需的出口合规证明问题. 必要职能:“帐户持有人”职能.“管理”职能或“App ...

  10. ACM_三角形的周长

    三角形的周长 Time Limit: 2000/1000ms (Java/Others) Problem Description: 有n根棍子,棍子i的长度为ai,想要从中选出3根棍子组成周长尽可能长 ...