基于野狗的及时通讯

基于野狗的及时通讯

野狗

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值