python 开发模拟板Web QQ[效果展示](六)

实现不同聊天对话的动态切换

让不同聊天窗口展示自己的消息,而不展示别人的消息

点击不同的聊天对象,把消息展示出来。

首先保存当前记录,有人点击就展示出来

function Session_hpy(contact_id,contact_type,action){
    if (action == 'dump'){
        //保存当前聊天记录
        var current_dialog_content = $(".dialog-box-content").html();
        all_dialog_sessions[contact_type][contact_id] = current_dialog_content;
    }
    else if(action =='load'){
        //把指定的contact id的聊天记录加载出来
        var new_dialog_content = '';
        if (all_dialog_sessions[contact_type].hasOwnProperty(contact_id)){
            new_dialog_content = all_dialog_sessions[contact_type][contact_id]
        }
        return new_dialog_content;
    }
}


实现无延迟实时聊天

用请求类(utils.py 的Chat类)下面的get_msg实现实时聊天

def get_msg(request):
    uid = request.GET.get('uid')
    if uid:
        #判断是否有消息
        res = []
        if uid not in global_msg_dic:
            global_msg_dic[uid] = utils.Chat()
            #调用类下面的get_msg方法
        res = global_msg_dic[uid].get_msg(request)
        return HttpResponse(json.dumps(res))
    else:
        return HttpResponse(json.dumps("uid not provided!"))
好了,到这里就实现完了。整个过程记录的有点粗糙。

效果展示图:



打开两个不同的浏览器(IE除外),分别用用户hpyhx登录。

现在hxhpy发送3条消息:



由于hpy当前没有和hx聊天,所有就会出现提示收到了hx发来的三条消息


hpy点击联系人hx去读取消息,消息便会被展示出来:


最后完成实时聊天,hpy向hx发送消息:


由于hx正在和hpy聊天变会立刻出现消息:



后端的数据接收和转发:

有消息就push,


没有就等待6秒



源码参考地址

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值