ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android-使用parse和pubnub在随机聊天应用中正确配对和连接两个用户

2019-10-09 16:27:11  阅读:572  来源: 互联网

标签:parse-platform pubnub android instant-messaging chat


我目前正在创建一个随机聊天应用程序,用户可以在其中按下按钮并与另一个用户配对,然后他们可以聊天.我计划使用Parse进行用户控制和文件存储,并使用pubnub进行聊天.我的问题是是配对和连接两个用户并将他们放在一起聊天的正确方法?假设user1按下搜索按钮开始搜索另一个用户,然后将解析数据库中user1的状态更新为“正在搜索”,然后该应用程序在数据库中查询另一个状态也是“正在搜索”的用户.该查询将返回user2,并根据合并在一起的两个用户名创建一个新的聊天频道(例如Pubnub聊天频道:“ user1user2”).然后将User1放入此聊天频道,并开始聊天活动.这是我感到困惑的地方,然后我的应用程序将如何知道它需要将user2与user1聊天?因为根据我的想法,user2还按下了搜索按钮以查询解析数据库中的另一个用户,因此可以将其与另一个随机用户而不是user1进行聊天.

非常感谢在正确方法上实现这一目标的任何帮助,谢谢.

解决方法:

这是一个很酷的用例.以下是一些有关如何开始使用此设计的见解.

设定

>将为每个用户分配一个唯一的频道名称和一个唯一的channel group,例如ch_user123和cg_user123.
>将有三个服务器管理的通道组,分别为cg_idle,cg_searching和cg_active.该频道组将包含未积极参与聊天且未搜索聊天伙伴的用户的所有唯一用户频道名称.

用户登录

用户成功登录后,服务器会将该用户的唯一通道添加到空闲的通道组和用户的唯一通道组(IOW-将ch_user123添加到cg_user123和cg_idle

搜索聊天伙伴

当用户单击“搜索聊天伙伴”按钮时,您的服务器应用程序将

>从cg_idle频道组中删除其用户唯一频道
>将其用户唯一频道添加到cg_searching频道组
> cg_idle的list_channels以获得聊天伙伴候选列表
>从cg_idle候选列表中选择一个用户频道
>检查以确保所选的候选人仍然空闲
>如果用户不再空闲,则他们处于活动状态或正在搜索-从空闲列表中选择另一个用户(需要再次列出cg_idle的频道以获取更新的列表)-IOW,返回到步骤4
>如果用户仍然空闲,请从cg_idle删除该用户的频道并将其添加到cg_active
>从cg_searching中删除搜索用户的频道并将其添加到cg_active
>将新生成的频道名称(您可以使用UUID API生成UUID格式名称)添加到两个用户的唯一频道组中.例如,将新的频道名称1234-5678-9ABC添加到cg_user123和cg_user456.这两个用户没有订阅相同的频道来开始彼此的聊天之旅.
>您的服务器现在可以将消息发布到此新频道,以向用户介绍彼此(您的客户端应用可以显示头像,用户信息,甚至显示start the video stream if you are doing that).
>如果任一用户单击“离开”按钮,则两个用户的唯一频道将从cg_active中删除,添加到cg_idle,并且共享聊天频道也从两个用户的唯一频道组中删除.

我可以想到上面需要解决的一些细节和功能,以及服务可以控制的竞争条件,但这应该揭示如何使用通道组来控制用户的状态以及创建名称目录的方式.用户.

标签:parse-platform,pubnub,android,instant-messaging,chat
来源: https://codeday.me/bug/20191009/1880595.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有