Tag: xmppframework

通过丢失的连接xmpp丢失消息

我经历了这个问题 XMPP上丢失的设备断开连接 但没有答案。 当由于某些networking问题而导致连接丢失时,服务器不能识别它并继续向断开的接收机发送消息,这些消息永久丢失。 我有一个解决方法,我从服务器ping客户端,当客户端断开连接时,服务器能够在10秒后识别它,并将更多消息保存在队列中,防止它们丢失。 我的问题是可以100%失败保存消息传递可以通过使用其他方式来实现,我知道psi和许多其他xmpp客户端正在这样做。 在ios方面,我正在使用xmppframework

如何处理XMPP框架上的拒绝操作 – Objective C

我已经使用XMPP Framwork实现了群聊。 我能够连接,发送和接收双方之间的消息。 但是,他们是在获得状态的时候和代理人在另一边的问题拒绝我的要求。 Agent Decline请求时,没有委托人正在呼叫。 这是我的代码。 – (void)setupStream { _xmppStream = [[XMPPStream alloc] init]; [_xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()]; [_xmppStream setHostName:kChatUrl]; [_xmppStream setHostPort:5222]; _xmppMUC = [[XMPPMUC alloc] initWithDispatchQueue:dispatch_get_main_queue()]; [_xmppMUC activate:_xmppStream]; [_xmppMUC addDelegate:self delegateQueue:dispatch_get_main_queue()]; } 这里是代表方法 – (void)xmppMUC:(XMPPMUC *)sender roomJID:(XMPPJID *)roomJID didReceiveInvitationDecline:(XMPPMessage *)message { [self.delegate gatwayAgentDeclinedChatRequest]; } – (void)xmppMUC:(XMPPMUC *)sender roomJID:(XMPPJID *) roomJID didReceiveInvitation:(XMPPMessage *)message { NSLog(@"%@", […]

如何在ios中parsingxmpp xml?

您好我正在与xmpp工作正常的每一件事情,但我无法parsing下面的XML <message xmlns="jabber:client" to="919452544@server" id="859e7-870" type="chat" from="917696997127@server/Smack"> <body>Broadcast</body> <properties xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties"> <property> <name>stream</name> <value type="string">8d879bea44f792468d6ecad161d3e545</value> </property> <property> <name>date</name> <value type="string">2016-05-05 10:36:25</value> </property> <property> <name>broadcast</name> <value type="string">Broadcast</value> </property> </properties> </message> 在上面的XML首先我需要检查身体是否等于广播。 然后我需要parsing<name>stream</name><value type="string">8d879bea44f792468d6ecad161d3e545</value>如何在上面的xml中获取名称和值。 我试过这样,但每次都是成功的。下面是我的代码 if ([message elementsForName:@"name"] ) { NSArray *nameArray=[message elementsForName:@"name"]; NSLog(@"name Broadcast %@",nameArray); } 但nameArray总是empty.please帮助我

在XMPP中无法获得邮件传递收据

我是XMPP的新手。 我正在为我的聊天应用程序使用XMPP和开放式消息服务器。 应用程序正在工作,但现在我想要收到消息传递收据。 我在setupStream使用下面的代码: xmppMessageDeliveryRecipts = [[XMPPMessageDeliveryReceipts alloc] initWithDispatchQueue:dispatch_get_main_queue()]; xmppMessageDeliveryRecipts.autoSendMessageDeliveryReceipts = YES; xmppMessageDeliveryRecipts.autoSendMessageDeliveryRequests = YES; [xmppMessageDeliveryRecipts activate:xmppStream]; 在sendMessage : NSString *messageID=[xmppStream generateUUID]; NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; [message addAttributeWithName:@"type" stringValue:@"chat"]; [message addAttributeWithName:@"id" stringValue:messageID]; [message addAttributeWithName:@"to" stringValue:myJID]; [message addChild:body]; 但是我收不到信息传递收据。 我怎么才能得到它? 有人知道吗?

iOS中的Gtalk实现

有没有什么办法可以在iOS应用程序中实现Gtalk,我只想创build一个应用程序,用户只需用他/她的Gmail帐户login,就可以与在他的聊天列表中的人聊天。 如果有人知道如何做到这一点,那么请帮助我。 提前致谢

从XMPP获取离线消息而不在线

我们正在使用ejabberd服务器为我们的移动聊天应用程序。 我们正在为我们的IOS应用程序使用IOS XMPP-Framework( https://github.com/robbiehanson/XMPPFramework ) 但是我们在执行上遇到问题,我们找不到解决scheme。 我们已经实现了XMPP消息传递的各个方面,除了一件事之外, 虽然我们的应用程序是在后台,我们的ejabberd服务器向我们发送推送通知,通知我们关于离线消息。 (只发送离线消息的通知) 然后,我们决定实施IOS背景推送通知function,以在应用程序处于后台时获取脱机消息。 但问题是我们必须成为在线(发送状态)才能获得离线消息。 但是当我们这样做时,会产生两个不希望的后果: 发送消息的一方看到我们作为在线(尽pipe我们在后台) 由于我们在应用程序处于后台时正在联机,因为我们在线并且服务器只能发送离线消息的通知,所以我们的服务器无法发送其他人的消息的推送通知。 为了解决这个问题,只有我能想到的是,如果有办法从xmpp服务器上检索离线消息而不上网。 有谁知道是否有任何方式与XMPP框架的iOS [编辑]让我再澄清一点: 问题不仅仅是一个: 问题1 – 推送通知问题: 1.1 – Server check if the message is sending to an online or offline user. If the user is offline server sends push notification to inform user but if the user is online server […]

XMPPFramework – 创buildvCard

我使用下面的代码来创build一个vCard无济于事。 它总是进入if封锁。 有人可以看看它,看看我是否失去了什么? xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance]; xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage]; XMPPvCardTemp *myvCardTemp = [xmppvCardTempModule myvCardTemp]; if (!myvCardTemp) { NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"]; XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML]; myvCardTemp = newvCardTemp; } [myvCardTemp setNickname:@"someNick"]; [myvCardTemp setMiddleName:@"somegender"]; [xmppvCardTempModule updateMyvCardTemp:myvCardTemp]; 我已经试过这个,但它仍然不工作…被称为获得vcard的函数总是返回零。 – (XMPPvCardTemp *)vCardTempForJID:(XMPPJID *)jid shouldFetch:(BOOL)shouldFetch 这个函数返回零值。 有什么我失踪? 另一件事是它发送一个错误的日志: Error saving – Error Domain=NSCocoaErrorDomain […]

未findCocoa / Cocoa.h文件

我在我的应用程序中使用XMPPFramework 。 我在我的.m文件中导入了Cocoa / Cocoa.h。 但是,当我build立项目Xcode显示错误。 错误:“未findCocoa / Cocoa.h文件”。 我怎样才能解决这个错误?

XMPPFramework – XEP-0048:书签存储

在我的应用程序中,我实现了创buildXMPPRoom并邀请用户。 现在,我正在寻找一种方法来存储这些组(我创build的或我被邀请参加的组),以便在需要时可以轻松地将其重新找回。 我遇到了书签XEP-0048但是,我找不到任何在线使用的例子。 有没有人用过这个? 你能分享一些例子吗? http://www.xmpp.org/extensions/attic/xep-0048-1.0.html 艾哈迈德

XMPPFramework – 如何将图像从一台设备传输到另一台设备?

我已经使用XMPP协议进行了一对一的聊天。 现在,我想在我的应用程序中发送图像和video。 我研究了文件传输,但是我没有find解决scheme。 我也使用下面的代码来连接Socket。 请告诉我如何才能做到这一点。 [TURNSocket setProxyCandidates:@[@"MyserverHost-desktop"]]; XMPPJID *jid = [XMPPJID jidWithString:@"1254225445@MyserverHost-desktop"]; TURNSocket *turnSocket = [[TURNSocket alloc] initWithStream:[[self appDelegate]xmppStream] toJID:jid]; [app.turnSocketArray addObject:turnSocket]; [turnSocket startWithDelegate:self delegateQueue:dispatch_get_main_queue()]; [turnSocket release]; – (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket { } – (void)turnSocketDidFail:(TURNSocket *)sender { } 每次连接失败的方法调用.. 谢谢。