问题描述
- 关于安卓QQ等即时通讯是怎么知道用户A是怎么发给用户B的
- 我打算写一个即时通讯app,qq是点对点即时通讯的,但是接收方不在线的话,服务器就要代理通讯了,但是怎么判断用户A是发给用户B,而不是发给用户C?
解决方案
和写信一样,消息放在信封上,信封上有寄件人收件人。
这里的信封就是qq协议中的报文头。收件人寄件人就是用户名。当然qq协议是加密的,而且也不公开。
解决方案二:
我知道你在问什么,通过推送可以实现聊天功能,推送可以指定一个id发送消息或者tag。
至于推送是怎么查找手机发送信息。 其实手机有推送服务组件。 可以是百度的,可以是谷歌的,根据应用使用的推送sdk来定。
推送sdk会在应用首次启动时向 推送服务器提交唯一id值。并且组件会在后台与服务器进行 协议通讯。 如果推送服务器在某个id的数据表中存去了待发送命令。则组件就会通过查表知道有待发送信息,并在手机里进行通知处理。
至于qq等大型公司当然会有自己开发的推送协议。
解决方案三:
学习下百度推送, 能解决你的问题,用百度推送demo中的onmessage接收消息通知宿主activity
,一切都用隐试传递方式既message方式。在onmessage 做判断是否登陆,是否是在使用,是否是晚上,来决定notfcaton还是直接传递数据到actvty。
网上已有demo可以搜一下
解决方案四:
每个用户都有一个唯一的ID,比如QQ号等,所以服务器可以保存这个接收方信息
解决方案五:
很简单啊,根据QQ号,服务器可以判断是谁发给谁的
时间: 2024-10-31 18:15:32