<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
  function chat(socketurl,guestid,sessionusername='',guestip,kefus,guestdata,web={qq:'',weixin:''}){
  
   //ç”µè„‘ç«¯
 
    layui.config({
  version: true
}).use(['layer','mobile','form','jquery', 'table', 'element', 'flow','layim'],function(layer,mobile){
  var mobile = layui.mobile
  ,layim = mobile.layim
  ,$ = layui.jquery
  ,table = layui.table
  ,form = layui.form
  ,layer = mobile.layer;
  
  //æ¼”ç¤ºè‡ªåŠ¨å›žå¤
//   var autoReplay = [
//     'æ‚¨å¥½ï¼Œæˆ‘çŽ°åœ¨æœ‰äº‹ä¸åœ¨ï¼Œä¸€ä¼šå†å’Œæ‚¨è”ç³»ã€‚', 
//     'ä½&nbsp;æ²¡å‘é”™å§ï¼Ÿface[å¾®ç¬‘] ',
//     'æ´—æ¾¡ä¸­ï¼Œè¯·å‹¿æ‰“æ‰°ï¼Œå·çª¥è¯·è´­ç¥¨ï¼Œä¸ªä½“å››åï¼Œå›¢ä½“å…«æŠ˜ï¼Œè®¢ç¥¨ç”µè¯ï¼šä¸€èˆ¬äººæˆ‘ä¸å‘Šè¯‰ä»–ï¼face[å“ˆå“ˆ] ',
//     'ä½&nbsp;å¥½ï¼Œæˆ‘æ˜¯ä¸»äººçš„ç¾Žå¥³ç§˜ä¹¦ï¼Œæœ‰ä»€ä¹ˆäº‹å°±è·Ÿæˆ‘è¯´å§ï¼Œç­‰ä»–å›žæ¥æˆ‘ä¼šè½¬å‘Šä»–çš„ã€‚face[å¿ƒ] face[å¿ƒ] face[å¿ƒ] ',
//     'face[å¨æ­¦] face[å¨æ­¦] face[å¨æ­¦] face[å¨æ­¦] ',
//     '&lt;ï¼ˆ@ï¿£ï¸¶ï¿£@ï¼‰&gt;',
//     'ä½&nbsp;è¦å’Œæˆ‘è¯´è¯ï¼Ÿä½&nbsp;çœŸçš„è¦å’Œæˆ‘è¯´è¯ï¼Ÿä½&nbsp;ç¡®å®šè‡ªå·±æƒ³è¯´å—ï¼Ÿä½&nbsp;ä¸€å®šéžè¯´ä¸å¯å—ï¼Ÿé‚£ä½&nbsp;è¯´å§ï¼Œè¿™æ˜¯è‡ªåŠ¨å›žå¤ã€‚',
//     'face[é»‘çº¿]  ä½&nbsp;æ…¢æ…¢è¯´ï¼Œåˆ«æ€¥â€¦â€¦',
//     '(*^__^*) face[å˜»å˜»] ï¼Œæ˜¯è´¤å¿ƒå—ï¼Ÿ'
//   ];


   
  //console.log(layim.datafrend);
var table = layui.table;
    var form = layui.form;
    var  $ = layui.$;
     /*ç›‘å¬æäº¤*/
    var ws = new WebSocket(socketurl);
    //localStorage.getItem("userid")
    //var fromid="{{$Request.session.guestid}}";
    var fromid=guestid;
   if(sessionusername){
       fromid=sessionusername
   }
   
    var  userstatus=[];
   
    
    var statu="";
    $('#loginout').click(function(){
          $.ajax({
            url:"/http/chat/loginout",
            type:'post',
            headers:{
                'kefutoken':localStorage.getItem("kefutoken"), 
            },
          
            data:{},
            
            beforeSend:function () {
               
            },
            success:function(data){
                
                 
                if(data.status == 1){
                    
                    
                     layer.msg("é€€å‡ºæˆåŠŸï¼", {icon: 1, anim: 5, time: 2300});
                   window.location.reload();
                    return false;
                }else{
                  layer.msg(data.msg, {icon: 1, anim: 5, time: 1300});
                }
            },
            error:function () {
                layer.msg("è¯·æ±‚é”™è¯¯")
            }
        });
    })
    // $.ajax({
    //         url:"/http/chat/getfromid",
    //         type:'post',
    //         headers:{
    //             'kefutoken':localStorage.getItem("kefutoken"), 
    //         },
          
    //         data:{},
            
    //         beforeSend:function () {
               
    //         },
    //         success:function(data){
                
                 
    //             if(data.status == 1){
    //                 fromid=data.userid;
    //                  //console.log(fromid);
    //                  layer.msg("åˆå§‹åŒ–ç”¨æˆ·æˆåŠŸï¼", {icon: 1, anim: 5, time: 2300});
                   
    //                 return fromid;
    //             }else{
    //               layer.msg(data.msg, {icon: 1, anim: 5, time: 1300});
    //             }
    //         },
    //         error:function () {
    //             layer.msg("è¯·æ±‚é”™è¯¯")
    //         }
    //     });
    
    if(!fromid){
      
      fromid=parseInt(Math.random()*100000);
    }
    ws.onopen = function() {
        
          let   message='{"qq":"'+web.qq+'","weixin":"'+web.weixin+'","data":"'+window.location.href+'","type":"guest","fromid":"'+fromid+'","toid":"'+kefus[0].userid+'","username":"'+"æ¸¸å®¢"+' ip:'+guestip+'","avatar":"'+"/static/images/user.png"+'"}';
           // var onconnects='{"fromid":"'+fromid+'","type":"onconnect","url":"+window.location.href+"}';
           
           //console.log(message);
           ws.send(message);
    };
    ws.onerror=function(){
        statu="èŠå¤©æœåŠ¡å™¨è¿žæŽ¥å¼‚å¸¸!!"
         $('#div_box').append('&lt;div class="div_box" style="border-bottom:1px solid #ccc;color:red;text-align:center"&gt;\n' +
                    '\n' + statu +
                    '&lt;/div&gt;')
    }
 
   // $("#Submitbtn").click(function() {
   //      var val = document.getElementById('test1').value;
   //      if(val &amp;&amp; !statu){
   //          $('#div_box').append('&lt;div class="div_box" style="border-bottom:1px solid #ccc;color:red;text-align:right"&gt;\n' +
   //                  '\n' + val +
   //                  '&lt;/div&gt;')
   //          var message='{"data":"'+val+'","type":"text","fromid":"'+fromid+'","toid":"'+toid+'"}';

   //          ws.send(message);
   //          document.getElementById('test1').value="";
   //      }
   //  }); 
   
    ws.onconnect = function(e){
        
        // $('#div_box').after('&lt;div id="div_box"&gt;\n' +
        //     '\n' + e.data +
        //     '&lt;/div&gt;')
    };
    // ws.onmessage = function(e){
    //     var res=eval("("+e.data+")");
    //     switch(res.type){
    //       // case "text":
    //       //  if(res.fromid==toid){
    //       //    $('#div_box').append('&lt;div class="div_box"&gt;\n' +
    //       //       '\n' + res.data +
    //       //       '&lt;/div&gt;')
    //       //  }
             
    //       // break;
    //       case "bind":
    //       var bind='{"fromid":"'+fromid+'","type":"bind"}';
    //        ws.send(bind);
         
         
    //       break;
    //     }

        
    // };
   ws.onmessage = function(e){
        var rs=eval("("+e.data+")");
       
        switch(rs.type){
          case "friend":
         
           if(rs.fromid!=fromid){            
              obj = {
                username: rs.username
                ,avatar: rs.avatar
                ,id: rs.fromid
                ,type: rs.type
                ,content: rs.data
              }
              layim.getMessage(obj);
           }
             
          break;
          case "group":
          if(rs.fromid!=fromid){ 
          layim.getMessage({
            system: false
            ,id: rs.toid
            ,type: "group"
            ,username: rs.username
            ,avatar: rs.avatar
            ,content: rs.data
          });
         }
         
          break;
            case "bind":
                
        
                
                
            if(fromid){
              var bind='{"fromid":"'+fromid+'","type":"bind"}';
          ws.send(bind);
            }
           
            
          break;
          case "isonline":
          
            userstatus=rs.status;
            console.log(userstatus);
           let sta="online";
           for(let b in userstatus){
            if(userstatus[b].statu==0){
              sta="offline";
            }else{
              sta="online";
            }
            
            layim.setFriendStatus(userstatus[b].uid, sta);   
            

           }
          break;
          case "save":
             console.log(rs);
              $.ajax({
                    url:"/http/chat/save/",
                    type:'post',
                  
                    data:{data:rs},
                    
                    beforeSend:function () {
                       
                    },
                    success:function(data){
                        // data=JSON.parse(data);

                        if(data.status == 1){
                             //layer.msg("è¯·ç­‰å¯¹æ–¹æŽ¥å…¥ï¼è¯·ç¨ç­‰......", {icon: 1, anim: 5, time: 5300});
                           
                            return false;
                        }else{
                           //layer.msg(data.msg, {icon: 1, anim: 5, time: 5300});
                        }
                    },
                    error:function () {
                      //  layer.msg("è¯·æ±‚é”™è¯¯.....", {icon: 1, anim: 5, time: 5300});
                    }
                });
                 $.ajax({
                    url:"/http/wechat/tpl/",
                    type:'post',
                  
                      data:{content:'(å®¢æˆ·ip:'+guestip+') å†…å®¹ï¼š'+rs.data,chatuid:fromid},
                    
                    beforeSend:function () {
                       
                    },
                    success:function(data){


                        // if(data.status == 1){
                        //      layer.msg("å‘é€å¤±è´¥ï¼å¯¹æ–¹å·²ç¦»çº¿ï¼", {icon: 1, anim: 5, time: 2300});
                           
                        //     return false;
                        // }else{
                        //   layer.msg(data.msg, {icon: 1, anim: 5, time: 1300});
                        // }
                    },
                    error:function () {
                       // layer.msg("è¯·æ±‚é”™è¯¯ï¼è¯·ç¨åŽ....", {icon: 1, anim: 5, time: 5300})
                    }
                });
  // layer.msg("å‘é€å¤±è´¥ï¼å¯¹æ–¹å·²ç¦»çº¿ï¼", {icon: 1, anim: 5, time: 2300});

        }

     
    };
  layim.config({
    
    init: guestdata
    ,
    
    //ä¸Šä¼&nbsp;å›¾ç‰‡æŽ¥å£
    // uploadImage: {
    //      //url: '/dyadmin/upload/uploadimg?type=webim' //ï¼ˆè¿”å›žçš„æ•°æ®æ&nbsp;¼å¼è§ä¸‹æ–‡ï¼‰
    //      url:'/http/chat/base64'
    //   ,type: '' //é»˜è®¤post
    //   , headers:{
    //             'kefutoken':localStorage.getItem("kefutoken"), 
    //         }
    // },
    
    //ä¸Šä¼&nbsp;æ–‡ä»¶æŽ¥å£
    // uploadFile: {
    //   url: '/dyadmin/upload/uploadFlie?type=webim' //ï¼ˆè¿”å›žçš„æ•°æ®æ&nbsp;¼å¼è§ä¸‹æ–‡ï¼‰
    //   ,type: '' //é»˜è®¤post
    // , headers:{
    //             'kefutoken':localStorage.getItem("kefutoken"), 
    //         },
    // },
   brief: true

    //æ‰©å±•èŠå¤©é¢æ¿å·¥å…·æ&nbsp;
    // ,tool: [{
    //   alias: 'code'
    //   ,title: 'ä»£ç&nbsp;'
    //   ,iconUnicode: '&amp;#xe64e;'
    // }]
    
    //æ‰©å±•æ›´å¤šåˆ—è¡¨
    ,moreList: [{
      alias: 'find'
      ,title: 'å‘çŽ°'
      ,iconUnicode: '&amp;#xe628;' //å›¾æ&nbsp;‡å­—ä½“çš„unicodeï¼Œå¯ä¸å¡«
      ,iconClass: '' //å›¾æ&nbsp;‡å­—ä½“çš„classç±»å
    },{
      alias: 'share'
      ,title: 'åˆ†äº«ä¸Žé‚€è¯·'
      ,iconUnicode: '&amp;#xe641;' //å›¾æ&nbsp;‡å­—ä½“çš„unicodeï¼Œå¯ä¸å¡«
      ,iconClass: '' //å›¾æ&nbsp;‡å­—ä½“çš„classç±»å
    }]
    
    //,tabIndex: 1 //ç”¨æˆ·è®¾å®šåˆå§‹æ‰“å¼€çš„Tabé¡¹ä¸‹æ&nbsp;‡
    //,isNewFriend: false //æ˜¯å¦å¼€å¯â€œæ–°çš„æœ‹å‹â€
    ,isgroup: true //æ˜¯å¦å¼€å¯â€œç¾¤èŠâ€
    ,chatTitleColor: '#009688' //é¡¶éƒ¨Baré¢œè‰²
    ,title: 'CHAT' //åº”ç”¨åï¼Œé»˜è®¤ï¼šæˆ‘çš„IM
  });

  //åˆ›å»ºä¸€ä¸ªä¼šè¯
  /*
  layim.chat({
    id: 111111
    ,name: 'è®¸é—²å¿ƒ'
    ,type: 'kefu' //friendã€groupç­‰å­—ç¬¦ï¼Œå¦‚æžœæ˜¯groupï¼Œåˆ™åˆ›å»ºçš„æ˜¯ç¾¤èŠ
    ,avatar: 'http://tp1.sinaimg.cn/1571889140/180/40030060651/1'
  });
  */

  
  //ç›‘å¬ç‚¹å‡»â€œæ–°çš„æœ‹å‹â€
  layim.on('newFriend', function(){
    layim.panel({
      title: 'æ–°çš„æœ‹å‹' //æ&nbsp;‡é¢˜
      ,tpl: '&lt;div style="padding: 10px;"&gt;è‡ªå®šä¹‰æ¨¡ç‰ˆï¼Œ{{d.data.test}}&lt;/div&gt;' //æ¨¡ç‰ˆ
      ,data: { //æ•°æ®
        test: 'ä¹ˆä¹ˆå“’'
      }
    });
  });
  
  //æŸ¥çœ‹èŠå¤©ä¿¡æ¯
  layim.on('detail', function(data){
    //console.log(data); //èŽ·å–å½“å‰ä¼šè¯å¯¹è±¡
    layim.panel({
      title: data.name + ' èŠå¤©ä¿¡æ¯' //æ&nbsp;‡é¢˜
      ,tpl: '&lt;div style="padding: 10px;"&gt;è‡ªå®šä¹‰æ¨¡ç‰ˆï¼Œ&lt;a href="http://www.layui.com/doc/modules/layim_mobile.html#ondetail" target="_blank"&gt;å‚è€ƒæ–‡æ¡£&lt;/a&gt;&lt;/div&gt;' //æ¨¡ç‰ˆ
      ,data: { //æ•°æ®
        test: 'ä¹ˆä¹ˆå“’'
      }
    });
  });
  
  //ç›‘å¬ç‚¹å‡»æ›´å¤šåˆ—è¡¨
  layim.on('moreList', function(obj){
    switch(obj.alias){
      case 'find':
        layer.msg('è‡ªå®šä¹‰å‘çŽ°åŠ¨ä½œ');
        
        //æ¨¡æ‹Ÿæ&nbsp;‡è®°â€œå‘çŽ°æ–°åŠ¨æ€â€ä¸ºå·²è¯»
        layim.showNew('More', false);
        layim.showNew('find', false);
      break;
      case 'share':
        layim.panel({
          title: 'é‚€è¯·å¥½å‹' //æ&nbsp;‡é¢˜
          ,tpl: '&lt;div style="padding: 10px;"&gt;è‡ªå®šä¹‰æ¨¡ç‰ˆï¼Œ{{d.data.test}}&lt;/div&gt;' //æ¨¡ç‰ˆ
          ,data: { //æ•°æ®
            test: 'ä¹ˆä¹ˆå“’'
          }
        });
      break;
    }
  });
  
  //ç›‘å¬è¿”å›ž
  layim.on('back', function(){
    //å¦‚æžœä½&nbsp;åªæ˜¯å¼¹å‡ºä¸€ä¸ªä¼šè¯ç•Œé¢ï¼ˆä¸æ˜¾ç¤ºä¸»é¢æ¿ï¼‰ï¼Œé‚£ä¹ˆå¯é€šè¿‡ç›‘å¬è¿”å›žï¼Œè·³è½¬åˆ°ä¸Šä¸€é¡µé¢ï¼Œå¦‚ï¼šhistory.back();
  });
  
  //ç›‘å¬è‡ªå®šä¹‰å·¥å…·æ&nbsp;ç‚¹å‡»ï¼Œä»¥æ·»åŠ&nbsp;ä»£ç&nbsp;ä¸ºä¾‹
  layim.on('tool(code)', function(insert, send){
    insert('[pre class=layui-code]123[/pre]'); //å°†å†…å®¹æ’å…¥åˆ°ç¼–è¾‘å™¨
    send();
  });
  
  //ç›‘å¬å‘é€æ¶ˆæ¯
  layim.on('sendMessage', function(data){
       var To = data.to;
    var From = data.mine;
   
    if(To.type === 'friend'){
  
         var arr = Object.keys(userstatus);
        if(arr.length&gt;0){       
        if(userstatus[To.id]!=undefined){
           if(userstatus[To.id].statu==0) {
              layim.setChatStatus('&lt;span style="color:#FF5722;"&gt;å¯¹æ–¹å½“å‰å·²ç¦»çº¿ã€‚ã€‚ã€‚&lt;/span&gt;');
         }else{
           layim.setChatStatus('&lt;span style="color:#FF5722;"&gt;å¯¹æ–¹æ­£åœ¨è¾“å…¥ã€‚ã€‚ã€‚&lt;/span&gt;');
         }
        }else{
         layim.setChatStatus('&lt;span style="color:#FF5722;"&gt;&lt;/span&gt;');
      }
        
       }    
   

       var message='{"qq":"'+web.qq+'","weixin":"'+web.weixin+'","data":"'+From.content+'","type":"'+To.type+'","fromid":"'+fromid+'","toid":"'+To.id+'","username":"'+From.username+' ip:'+guestip+'","avatar":"'+From.avatar+'"}';
      

   }else{

     var message='{"qq":"'+web.qq+'","weixin":"'+web.weixin+'","data":"'+From.content+'","type":"'+To.type+'","fromid":"'+fromid+'","toid":"'+To.id+'","username":"'+From.username+' ip:'+guestip+'","avatar":"'+From.avatar+'"}';
   }
    
         
     ws.send(message);
    
    

  });
  
  
  //ç›‘å¬æŸ¥çœ‹æ›´å¤šè®°å½•
  layim.on('chatlog', function(data, ul){
    console.log(data);
    layim.panel({
      title: 'ä¸Ž '+ data.name +' çš„èŠå¤©è®°å½•' //æ&nbsp;‡é¢˜
      ,tpl: '&lt;div style="padding: 10px;"&gt;è¿™é‡Œæ˜¯æ¨¡ç‰ˆï¼Œ{{d.data.test}}&lt;/div&gt;' //æ¨¡ç‰ˆ
      ,data: { //æ•°æ®
        test: 'Hello'
      }
    });
  });
  
  //æ¨¡æ‹Ÿ"æ›´å¤š"æœ‰æ–°åŠ¨æ€
  layim.showNew('More', true);
  layim.showNew('find', true);
  
  
//   {{volist name="$kefus" id='vo'}} 
  $('.LAY-senior-im-chat-demo .layui-btnkf').on('click', function(){
      let key=$(this).attr('date-key-index');
       console.log(key);
      layim.chat({
        id: kefus[key].userid
        ,name: kefus[key].truename
        ,type: 'friend' //friendã€groupç­‰å­—ç¬¦ï¼Œå¦‚æžœæ˜¯groupï¼Œåˆ™åˆ›å»ºçš„æ˜¯ç¾¤èŠ
        ,avatar: kefus[key].avatar 
      });
   });
//   {{/volist}}
//   $('.LAY-senior-im-chat-demo .layui-btnkf').on('click', function(){
//     var type = $(this).data('type');
//     active[type] ? active[type].call(this) : '';
//   });

});
}
      
    
    
    
    
    
    
    
    
    
        
    $(function() { 

        $(window).scroll(function() { 

            if ($(window).scrollTop() &gt; 700) $('div.goup').show(); 

            else

            $('div.goup').hide();

        }); 

            $('div.goup').click(function() { $('html, body').animate({scrollTop: 0}, 1000);

        });

    });
</pre></body></html>