Extjs 轮询方式聊天功能

本文介绍了使用ExtJS实现客户端与服务器间的轮询方式聊天功能,探讨了其资源消耗问题,并分享了如何将轮询方式替换为WebSocket长连接,以优化通信效率并降低资源消耗。通过Node.js实现WebSocket服务器,提高了交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

client:jqm

server:php

manager:extjs

client和manager以轮询方式探测对方是否有消息发送到server。方式比较耗费资源。

manager部分代码:


monitorChatMessage:function(){

var me = this;

//定时器任务
var getMsgNotify = function () {

    me.getClientMsgNotify(me.token);
};

var runner = new Ext.util.TaskRunner();
var task = runner.start({
    run: getMsgNotify,
    interval: 5000
});

}

//请求服务端的client消息

getClientMsgNotify: function(token){

var me = this;
var index = 1;

Ext.Ajax.request({  

    url : 'http://localhost/wc/server/talk.php',  
    method : 'POST',
    params:{
        token:token,
        function:'getNewMsgNotify'  
    },

    success : function(res, opts) {

        var result = Ext.JSON.decode(res.responseText);
        if(result.success){

            var userTree = me.getChatUserTree();
            //获取根节点
            var root = userTree.getRootNode();
            var uidArray = result.data;
            //root.eachChild(renderNode,uidArray);
            for(index in uidArray){

                if(root.findChild('uid',uidArray[index].uid) == null){

                    root.insertChild(0,{
                        id:uidArray[index].uid,
                        uid:uidArray[index].uid,
                        text:uidArray[index].uid,
                        leaf:1,
                        parentId:0,
                    });

                }
            }


        }
    }


}); 

}


ui:双击回复对方

debugger;

if(cellIndex == 2){//我的回复

    var mid     =     record.get('mid');
    var smsg     =     record.get('smsg');
    var rmsg    =    record.get('rmsg');
    var replyObj = new Object();
    replyObj.rmsg = rmsg;
    replyObj.reply = "";

    //启动回复界面
    var replyMsg = this.startReplyWindow(mid,smsg,replyObj);
    record.beginEdit();  
    record.set('rmsg', replyObj.reply);  
    record.endEdit();

    this.getChatMessagStoreStore().load();
}

startReplyWindow


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

winsunxu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值