基于野狗的及时通讯
来源:互联网 发布:深圳行知职业技术官网 编辑:程序博客网 时间:2024/06/03 08:16
基于野狗的及时通讯
野狗
github
数据结构
新建用户
实现的很简单
查找在user下有没有该用户,如果有就登录,没有就利用push() 创建
添加好友
根据输入的id查找,如果有就在双方的friend列表下添加对方,否则不做处理
及时通讯
进入通讯页面后添加如下监听, 当消息列表更新后更新页面
mRef.child(mId).child(mFriendId).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.getValue() == null) { return; } Map<String, String> map = (Map<String, String>) dataSnapshot.getValue(); mChatMap.putAll(map); mChatList.clear(); mChatList.addAll(mChatMap.values()); mView.notifyDataChanged(); } @Override public void onCancelled(WilddogError wilddogError) { } });
发送消息,在自己的消息列表下添加后缀为 :send
的消息,在对方消息列表下添加:receive
后缀
public void sendMessage(final String message) { final String time = System.currentTimeMillis() + ""; mChatMap.put(time, message+":send"); mRef.child(mId).child(mFriendId).setValue(mChatMap); mRef.child(mFriendId).child(mId).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Map<String, String> s = (Map<String, String>) dataSnapshot.getValue(); if (s == null) { s = new HashMap<String, String>(); } s.put(time, message+":receive"); mRef.child(mFriendId).child(mId).setValue(s); } @Override public void onCancelled(WilddogError wilddogError) { } }); }
整个工程实现的很简单,界面就用了一个列表来显示,
用到的开源库
ButterKnife
0 0
- 基于野狗的及时通讯
- 基于融云的及时通讯
- 基于XMPP协议的及时通讯
- 及时通讯的学习
- 野狗的辩证法
- 环信及时通讯的整合SDK
- 基于Flume的野狗实时日志系统的演进和优化
- 野狗API的初步使用
- 测试及时通讯工具
- 及时通讯原理
- 网页及时通讯
- web 及时通讯
- Socket及时通讯
- websocket 聊天室(及时通讯)
- 基于Android的应用软件--地震及时通
- 基于Linux的及时通信软件
- 基于套接字SOCKET的及时聊天
- IOS及时通讯中消息的处理方式
- Unity中实现人物平滑转身
- Linux 驱动开发之内核模块开发(四)—— 符号表的导出
- 友盟 U-App 应用统计 Android SDK的使用说明
- Linux 驱动开发之内核模块开发 (三)—— 模块传参
- 回溯法的解题步骤与例子解析
- 基于野狗的及时通讯
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- Ubuntu下tomcat运行PHP
- MarQueeView垂直滚动广告
- EF上下文对象线程内唯一性与优化
- java 单元测试框架-JUnit4
- blender小知识点编外篇一
- Exynos4412 文件系统制作(三)—— 文件系统移植
- 图片的异步加载