别名推送
来源:互联网 发布:用友u8数据库不符合 编辑:程序博客网 时间:2024/05/01 06:37
添加别名推送功能的思路:
在服务器端保存一个集合,保存用户名与别名的对应关系.
然后客户端在用户登陆之后,发送用户名与别名到服务器,
服务器保存到集合中,当服务器需要使用别名推送的时候,
提供好方法,就可以推送了.
客户端
在 ServiceManager 中 提供方法发送:
public void setAlias(final String alias){ new Thread(new Runnable() { public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } NotificationService service=NotificationService.getInstance(); XmppManager manager=service.getXmppManager(); if(manager!=null){ if(!manager.isAuthenticated()){ synchronized (manager) { try { manager.wait(); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } SetAliasIQ iq=new SetAliasIQ(); String username=sharedPrefs.getString(Constants.XMPP_USERNAME,""); iq.setUsername(username); iq.setAlias(alias); iq.setType(Type.SET); manager.getConnection().sendPacket(iq); } } }).start(); }
在服务器端,定义 IQHandler 来处理消息并注册:
public class IQAliasHandler extends IQHandler { private static final String NAMESPACE = "androidpn:iq:alias"; @Override public String getNamespace() { return NAMESPACE; } @Override public IQ handleIQ(IQ packet) throws UnauthorizedException { IQ reply = null; ClientSession session = sessionManager.getSession(packet.getFrom()); if (session == null) { log.error("Session not found for key " + packet.getFrom()); reply = IQ.createResultIQ(packet); reply.setChildElement(packet.getChildElement().createCopy()); reply.setError(PacketError.Condition.internal_server_error); return reply; } if(session.getStatus() == Session.STATUS_AUTHENTICATED){ if(IQ.Type.set.equals(packet.getType())){ Element query = packet.getChildElement(); String username = query.elementText("username"); String alias=query.elementText("alias"); if(username!=null && !username.equals("") && alias !=null && !alias.equals("")){ ///保存数据 sessionManager.setAlias(username, alias); } } } return null; }}
0 0
- 别名推送
- 极光推送 别名
- ios 极光推送别名
- iOS 极光推送设置别名
- 极光推送 sdk 集成 全部推送 与别名标签推送
- 推送中的别名和标签都是什么意思
- 友盟推送使用别名(Alias)推送到具体用户
- 极光推送分类推送 最新别名设置ios
- 极光推送的别名alias和标签tag分别是什么意思
- 极光推送企业开发系列之别名,标签,RegistrationID
- 极光推送中的别名和标签的含义
- iOS 极光推送—绑定和取消绑定别名
- 根据别名推送通知(完成版)Jcenter自动集成
- 友盟服务端通过别名发送消息推送
- 极光推送iOS接入代码(含设置别名)
- (服务端)极光推送根据别名和分组名进行推送
- iOS 友盟推送使用别名(Alias)推送到具体用户
- 极光推送实现别名推送通知,并根据推送的不同type类型进行不同的操作
- java垃圾清除算法
- MR-4.MapReduce压缩基本介绍
- 微服务构建大应用
- java中abstract详解
- Packet for query is too large
- 别名推送
- 一个仅供测试的百度地图的AK
- jsp中文乱码的一些小心得
- 数组常用方法
- 弧度 和 角度的理解, 以及相互转换
- Android技术积累:开发规范
- 2016.1.26寒假训练赛1
- ?12星座综合实力排行,第一名居然是他……
- Android中关于键盘的处理