100分,Android聊天客户端,求聊天服务器后台的解决方案!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100分,Android聊天客户端,求聊天服务器后台的解决方案!相关的知识,希望对你有一定的参考价值。
说一下目前的情况,本人做前端开发的,很少接触后台所以没什么经验,现在用的解决方案是openfire+smack+mysql,使用xmpp协议
现在pc,android,ios端之间可以相互与指定用户进行对话了,我想做的功能是让服务器随机分配当前在线的用户让他们进行聊天(就是随机聊天的意思,有点像微信的摇一摇),还有显示在线人数之类的。
问题来了。。。
这个功能要怎么实现,需要另外搭建后台吗?比如用php,node.js做接口什么的,然后算法要在哪里写?
有没有什么好的解决方案和思路?(需要用到的开发语言还有工具都注明一下)
谢谢了
谢谢回答,我说一下我的思路:
假设触发就用按钮的形式,按了之后用户就会存入在一个列表里,第1个用户就会和第2个用户配对,然后从列表中移除,如果没有第4个用户的话,第3个用户就会等待新用户加入再进行配对这样。
按你的方法,我是不是要在数据库中建一个单独的表用来存放要匹配聊天的用户,
然后实现方法就是在客户端里用jQuery调用php地址在mysql数据库中加入新用户,
如果用户不在列表第1个的话,就返回第n-1个用户的用户名,然后把第n个用户和第n-1个用户都从表中移除,然后根据返回的这个用户名创建聊天。
如果只剩一个用户无法配对并返回值的时候,我想让这个用户在等待到新用户加入后服务器主动向他推送新用户的用户名,该怎么做?还有我这样的思路对吗?
举个例子,比如说现在需要进行配对操作,1:1 然后就随机两个在线用户,给他们创建一个单独的聊天室,就可以聊天了,然后在接下来的配对中把这两个用户移除掉,直到他们退出聊天。
然后重复多次,直到所有用户,或者剩余1个用户无法配对的时候。
摇一摇配对和显示在线人数好像不是很难,难得是即时聊天吧。
如果你们能做出聊天,并且很多并发聊天都没有问题的话。我觉得你上述的问题应该不存在才对追问
我补充问题了,帮我看看思路对不对,谢谢
追答思路是对的啊,如果说是即时聊天,用户群组不是很多的话,可以把需要配对的用户信息加到缓存里面,因为这种经常增删改数据库的话,造成的sql次数是很多的,比较费钱。
(以上是即用即删的,不保留聊天配对历史记录)
如果是要存储的话,可以先用缓存记录,每当有用户配对成功然后聊天结束,退出聊天的时候触发记录一下配对的log,这样可以减少数据库压力。
这个嘴上说起来绕来绕去的。写的时候先给个思路,然后边写边改就好了,要直接在脑子里面画脑图还是有点累的。你可以用PRD或者百度脑图,写一个流程然后看看
Android:开发聊天应用程序
【中文标题】Android:开发聊天应用程序【英文标题】:Android: Developing a Chat app 【发布时间】:2016-06-17 14:55:47 【问题描述】:我正在开发一个一对一的聊天应用程序。问题是我应该如何让所有客户端和服务器保持同步?当消息无法从客户端发送,或者客户端没有接收到消息时,可能有多种情况。
现在,我正在使用 pub 子服务和 GCM。每当用户使用该应用程序时,我都会订阅一个独特的频道来接收消息并使用 api 发送消息。此外,通过 pubsub 我维护用户在线状态。
每当应用程序进入后台时,pubsub 就会断开连接并且用户会离线。在这种情况下,GCM 用于向客户端传递消息。
这个系统运行良好。但是很少有消息没有传递给客户端。
这可以改进以确保消息传递吗?
【问题讨论】:
为什么不试试 Firebase?看看这个youtube.com/watch?v=xAsvwy1-oxE 我同意@shiladitya 的观点。您可以利用 Firebase 的实时数据库功能。 【参考方案1】:Here 是一个很好的教程。 带有客户端和服务器端代码...
【讨论】:
以上是关于100分,Android聊天客户端,求聊天服务器后台的解决方案!的主要内容,如果未能解决你的问题,请参考以下文章
java 通过TCPUDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端
求一个C#最简单的TCP传输信息例子(实现聊天和传送文件,再简单点实现聊天也行)