Tag: xmpp

保存Carbon消息XMPPFramework iOS

我的应用程序支持多个设备给用户进行login,所以我需要实现消息同步。 目前,我正在从发件人到多个设备(Receiver) 让我带两个用户来解释一下。 用户A从两台设备login,用户B从一台设备login。 当用户B向用户A发送消息时,则用户A的两个设备都获得消息,当用户A从一个设备向用户B发送消息而不是另一个用户A的设备时,在func xmppMessageCarbons(_ xmppMessageCarbons: XMPPMessageCarbons, didReceive message: XMPPMessage, outgoing isOutgoing: Bool)获取碳消息func xmppMessageCarbons(_ xmppMessageCarbons: XMPPMessageCarbons, didReceive message: XMPPMessage, outgoing isOutgoing: Bool) 。 我按照以下实施: var xmppMessageCarbons: XMPPMessageCarbons? xmppMessageCarbons = XMPPMessageCarbons(dispatchQueue: DispatchQueue.main) xmppMessageCarbons?.activate(xmppStream!) xmppMessageCarbons?.autoEnableMessageCarbons = true; xmppMessageCarbons?.addDelegate(self, delegateQueue: DispatchQueue.main) 当用户A从一个设备发送消息时,我可以在func xmppMessageCarbons(_ xmppMessageCarbons: XMPPMessageCarbons, didReceive message: XMPPMessage, outgoing isOutgoing: Bool)方法中获取该消息。 现在问题是XMPPFramework不在XMPPFramework存储这个碳信息,以致于我不能在设备上显示这个信息。 我在StackOverflow上search了很多东西,然后用Google来存储这个碳信息,但没有任何帮助。 而且当用户A的两个设备中的一个进入脱机状态时,还遇到另一个问题,那么当另一个设备在线时,该设备不能够检索所有的脱机消息,但是我希望获得脱机设备的脱机消息。 如果有人知道,请帮助我,预先感谢,并为我的坏英语感到抱歉。

Xmpp ios中的策略违规错误?

嗨我正在与xmpp framework.every事情正常工作,直到昨天。但突然我面临下面的错误然后服务器断开连接 <stream:error xmlns:stream="http://etherx.jabber.org/streams"><policy-violation xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error> 为什么我收到这个错误。请问如果有任何机构知道帮助我。提前感谢,也得到了下面的错误 SEND: <iq type="error" to="manager.ip-1-148" id="30-22829"><query xmlns="jabber:iq:version"/><error type="cancel" code="501"><feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 2016-06-08 03:16:00:834[12715:9b03] RECV: <message xmlns="jabber:client" from="manager.ip–148" to="919553@ip-172-148/Smack"><body>You are using an invalid client, and therefore will be disconnected. Please ask your system administrator for client choices.</body></message>

iOS XMPPFramework – 房间/聊天消息的历史

我正在使用XMPPFramework开发聊天应用程序 join现有房间后,如何收到留言logging? 现在我join到这样的房间: XMPPJID *roomJid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@conference.%@",systemName,xmppServer]]; xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:[XMPPRoomHybridStorage sharedInstance] jid:roomJid]; [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; [xmppRoom activate:xmppStream]; NSXMLElement *history = [NSXMLElement elementWithName:@"history"]; [history addAttributeWithName:@"maxstanzas" stringValue:@"100"]; [xmppRoom joinRoomUsingNickname:user.deviceUUID history:history]; 另外我从文档中读取示例 根据这个例子,我也尝试通过这种方式来连接空间: XMPPJID *roomJid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@conference.%@",systemName,xmppServer]]; xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:[XMPPRoomHybridStorage sharedInstance] jid:roomJid]; [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()]; [xmppRoom activate:xmppStream]; NSXMLElement *presence = […]

使用XMPP的iOS连接到ejabberd失败

我使用https://github.com/robbiehanson/XMPPFramework连接到我自己的ejabberd服务器,但经过协商后总是失败。 这里是我得到的日志:2014-01-17 07:14:40.780 Chat [48246:70b] error:(null) 2014-01-17 07:14:40.789 Chat [48246:70b] xmppStreamWillConnect 2014-01-17 07:14:46.0​​76 Chat [48246:70b] socketDidConnect 2014-01-17 07:14:46.0​​77 Chat [48246:70b] xmppStreamDidStartNegotiation 2014-01-17 07:14:51.799 Chat [48246:70b] xmppStreamDidDisconnect:错误域= GCDAsyncSocketErrorDomain代码= 7“由远程对等closures的套接字”UserInfo = 0x918d2e0 {NSLocalizedDescription =由远程对等closures的套接字} 这里是代码: – (void)viewDidLoad { [super viewDidLoad]; self.stream = [[XMPPStream alloc] init]; self.stream.myJID = [XMPPJID jidWithString:@"test@gmail.com"]; self.stream.hostName = @"my host ip"; self.stream.hostPort = 5222; […]

如何从XMPP / OpenFire在iOS中检索vCard

顾名思义,我正尝试使用下一个XMPPFrameworks方法之一为用户检索vCard: – (XMPPvCardTemp *)fetchvCardTempForJID:(XMPPJID *)jid; – (XMPPvCardTemp *)fetchvCardTempForJID:(XMPPJID *)jid useCache:(BOOL)useCache; 我目前的实施是: dispatch_queue_t queue = dispatch_queue_create("queue", DISPATCH_QUEUE_PRIORITY_DEFAULT); dispatch_async(queue, ^{ XMPPvCardCoreDataStorage* xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance]; XMPPvCardTempModule* m = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage]; [m fetchvCardTempForJID:[sender myJID] ignoreStorage:YES]; NSLog(@"%@",xmppvCardStorage.description); }); 上面的代码不工作,我也想知道如何才能logging数据,如果目前的做法是正确的。

如何检索使用XMPP框架的会员聊天室列表?

如何检索使用XMPP框架的聊天室成员列表? 我试过使用: – (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items 但是它返回一个空数组。 任何人请帮助我?

如何在iOS中实现XMPP室的自动join?

我想在XMPP群聊中进行自动join空间。 我有从后端服务器创build的所有组,我第一次join房间,但是当我从XMPP(离开应用程序)断开,并回到应用程序内,并重新连接xmpp,我再次需要join房间。 在侧面的应用程序中,一个用户已经可以在多个房间里使用,所以再也不能在房间里再次join了。 请帮忙.. 提前致谢!

通过xmpp或websocket进行即时通讯

我有项目要求,我想在android / iphone中做一个即时通讯应用程序,并可能在未来它支持voip和video聊天。 现在我有2个select 1)xmpp – 即时通讯的应用层协议,已经有近10年的历史了,它有很多支持voip的扩展,或者可以是video聊天,在线/离线状态和其他许多function。 它被诸如whatsapp,fb,Skype等大公司所接受 另外我听说谷歌已经摆脱了这个协议,因为漏洞。 2)websocket – 它是tcp层协议,它通过一个单独的tcp连接提供全双工通信,它是新的,在2011年被IETF标准化。我不知道这个协议是否主要用于IM。 但是我知道它可以像在tcp层一样完成。 我没有看到或听到任何function/扩展的networking套接字除了4种方法(即onOpen,onClose,onMessage和onError)。 所以这意味着如果我select这个,我必须使自己的在线/离线状态的方法(可能是每“x”秒/分钟)发送一帧,voip,消息传递信息和其他function等。 我很困惑,从开发,服务器处理成本,安全性,会话处理pipe理,浏览器支持等方面来说,我selectxmpp还是web socket。 如果我对这两个协议有任何错误,请纠正我。 提前致谢

有没有任何选项可以禁用开放式服务器上的群聊讯息logging?

我一直在创buildgroup chat application ,同时实现群聊function,我面临的问题是,当我每次join the room , open fire sends last two days messages. 这是我每次参加房间时都会收到的信息。 <message xmlns="jabber:client" id="05qEM-18" to="210@openfire.indianic.net/94e509b9" type="groupchat" from="top@conference.openfire.indianic.net/258"><body>Very good morning!!!</body><delay xmlns="urn:xmpp:delay" stamp="2014-03-19T05:15:06.542Z" from="258@openfire.indianic.net/Smack"/><x xmlns="jabber:x:delay" stamp="20140319T05:15:06" from="258@openfire.indianic.net/Smack"/></message> 任何好友都可以build议在open fire server上disable history message选项在哪里? 所以我只会收到每封邮件一次。 提前致谢。

消息的XMPPFramework“input..”状态

我正在使用robbiehanson / XMPPFramework为我目前的项目。 如何使用XMPPFramework获得消息input状态? 有XEP-184协议,但现在不赞成。 在这里需要帮助获取在iOS中撰写状态。 问候,Bhat