您好我正在IOS中开发一个聊天应用程序并完成一对一的聊天,在搜索了很多关于groupChat的内容后,无法在xmppframework中创建一个正常的组。
我在这里尝试的是一个链接
iOS XMPP group chat implementation
How to create MultiUserChatRoom using XMPPFramework in iPhone
但是没有得到上述链接的任何积极回应,
在编码中我试过
XMPPRoomCoreDataStorage *rosterstorage = [[XMPPRoomCoreDataStorage alloc] init];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:rosterstorage jid:[XMPPJID jidWithString:@"test@conference.domainName.com/rohit"] dispatchQueue:dispatch_get_main_queue()];
[xmppRoom configureRoomUsingOptions:nil];
[xmppRoom activate:[self xmppStream]];
[xmppRoom addDelegate:self
delegateQueue:dispatch_get_main_queue()];
[xmppRoom inviteUser:[XMPPJID jidWithString:@"abc@domainName.com"] withMessage:@"Hi join room"];
也是这个
- (void)createOrEnterRoom:(NSString *)roomName
{
//here we enter a room, or if the room does not yet exist, this method creates it
//per XMPP documentation: "If the room does not yet exist, the service SHOULD create the room"
//this method accepts an argument which is what you would baptize the room you wish created
XMPPPresence *presence = [XMPPPresence presence];
NSString *room = [roomName stringByAppendingString:@"@conference.domain.com"];
[presence addAttributeWithName:@"to" stringValue:room];
NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"http://jabber.org/protocol/muc"];
NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
[history addAttributeWithName:@"maxstanzas" stringValue:@"50"];
[x addChild:history];
[presence addChild:x];
[[self xmppStream] sendElement:presence];
}
最后一个是
-(void)createGroup
{
@try {
NSString *username=@"user_3";//[self.userDefault valueForKey:@"userid"];
NSXMLElement *presenceElement=[NSXMLElement elementWithName:@"presence"];
[presenceElement addAttributeWithName:@"type" stringValue:@"groupchat"];
[presenceElement addAttributeWithName:@"from" stringValue:[NSString stringWithFormat:@"%@%@",username,HostName]];
[presenceElement addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"testGroup@conference.%@/%@",HostName,username]];
NSXMLElement *xElement=[NSXMLElement elementWithName:@"x" xmlns:@"http://jabber.org/protocol/muc"];
NSXMLElement *historyElement=[NSXMLElement elementWithName:@"history"];
[xElement addChild:historyElement];
[presenceElement addChild:xElement];
[self.xmppStream sendElement:presenceElement];
}
@catch (NSException *exception) {
}
}
任何人都请告诉我解决这个问题的方法。如果我们需要在ejjabered配置中配置额外的东西,请告诉我。
答案 0 :(得分:2)
请在这里找到最好最详细的答案。
Trouble creating xmpp muc room: Code 503 (service unavailable)
答案 1 :(得分:1)
XMPP不提供事实组聊天,XMPP是您使用XMPPRoom创建的聊天室, 或者你可以说对话。 你不能发送离线组消息。
我已经在http://www.catchbuddies.com/项目中借助其他自定义服务器实现了群聊。
您可以在一些团体网站的帮助下制作和配置群聊。
答案 2 :(得分:1)
对于 muc_room 的群组创建更改设置。也更喜欢这个网址会建议设置https://serverfault.com/questions/185770/configuring-ejabberd-for-multi-user-chat
的方式答案 3 :(得分:0)
您应该检查ejabberd服务器配置的muc设置。 确保muc主机设置正确。
在我的情况下,我将主机更改为{host," pub。@ HOST @"},然后我尝试加入会议室" test @ conference。@ HOST @"总是得到服务不可用的错误,我花了整整一夜才修好。
另外,您可以使用管理员用户登录您的jabber服务器imessage,并在运行ios客户端之前创建聊天室。
将ejabberd日志级别更改为debug可能会有很大帮助。