使用Parse API在两个用户之间进行聊天的最简单方法

时间:2014-03-13 00:33:48

标签: objective-c chat parse-platform private-messaging

我在网上看到了一些关于如何通过解析或用户之间的聊天来发送私人消息的教程,但它们都很复杂,很难在我的项目中使用它们大多数都是聊天室而不是私人消息。

我要做的是找到在两个用户之间进行聊天的最简单方法。 我的代码很简单,我有一个文本字段和一个按钮,让我们说userOne发送这些数字:1234

然后userTwo在文本字段中输入相同的数字并按下按钮将其发送到parse.com,然后我有一个查询来查找它并查看用户之间是否匹配

一旦匹配,我想询问他们两个用户是否想要聊天,如果是,那么他们可以互相聊天。

现在,我想告诉大家所有职业选手(:-D)我的选择是什么,

我考虑过用户之间的通知系统(甚至可能吗?)或者可能(因为聊天室很难创建)创建一个UILabel代码,NSTimer代码每2秒更新一次,用户可以相互发送文本的另一个文本字段。

我遇到的另一个问题是,一旦我找到了第二个用户ID,我该如何保存它并将其用于以后呢?

我需要将其保存到NSString吗?

无论如何,这是我的查询代码(当你按下按钮发送到号码时)

PFObject *addValues= [PFObject objectWithClassName:@"someNumber"];
[addValues setObject:someNumbers forKey:@"numbers"];
[addValues setObject:whoIsTheUser forKey:@"theUser"];
[addValues saveInBackground];



PFQuery* numQuery = [PFQuery queryWithClassName:@"someNumber"];
[numQuery whereKey:@"numbers" equalTo:someNumbers];
[numQuery whereKey:@"theUser" notEqualTo:[PFUser currentUser]];
[numQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if(!error) {
        //alert view for thanking the user for sending a message
        UIAlertView *messageForSending = [[UIAlertView alloc]initWithTitle:@"thank you" 
                                                                   message:@"the details has been send"
                                                                  delegate:nil
                                                         cancelButtonTitle:@"okay"
                                                         otherButtonTitles:nil];
        [messageForSending show];

        for(PFObject *numObject in objects) {
            // the numbers if found are right here

            if (objects.count > 1 ) {
                NSLog(@"yay we found %lu objects", (unsigned long)objects.count);
                // Here I can see what is the ID of the second user I want to create chat with
                NSLog(@" the numobject is  %@ " , numObject);
            } else {
                NSLog(@"there is no match ");
                // showing later UIAlert that there is no match             
            }

任何帮助将不胜感激!谢谢你们 。

1 个答案:

答案 0 :(得分:1)

对于DB模型,您可以:

用户表

解析用户表

房间表

一个简单的表,可能包含房间名称字段和指向用户创建者的指针字段

会员表

用户和房间之间的关联表,因为用户可以参与多个房间,而单个房间可以包含许多用户

消息表

带有消息字段的简单表,以及指向成员的指针字段,表示特定房间的用户成员。


另外(您可能已经知道),Parse中的每个表都有默认字段“objectId”,“createdAt”,“updatedAt”和“ACL”。这些字段(ACL除外)会自动填充。

希望这有帮助