[Java] java“服务推送”实现网页即时聊天,增强用户体验 →→→→→进入此内容的聊天室

来自 , 2020-11-21, 写在 Java, 查看 154 次.
URL http://www.code666.cn/view/3b5dca50
  1. package wyf;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9.  
  10. import javax.servlet.ServletContext;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.http.HttpServlet;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15.  
  16. import dojox.cometd.Bayeux;
  17. import dojox.cometd.Channel;
  18.  
  19.  
  20. /**
  21.  * Project:AjaxCometChat <br>
  22.  * Module: <br>
  23.  * Description: <br>
  24.  * Version:1.0 <br>
  25.  * Date:2013-7-31 <br>
  26.  * Copyright (C) 2012  <br>
  27.  *
  28.  * @author:beijing_qi
  29.  */
  30. public class AjaxReceiveServlet extends HttpServlet {
  31.  
  32.        
  33.         public void doGet(HttpServletRequest request, HttpServletResponse response)
  34.                         throws ServletException, IOException {
  35.  
  36.                 response.setContentType("text/html");
  37.                 PrintWriter out = response.getWriter();
  38.                 doPost(request,response);
  39.         }
  40.  
  41.        
  42.         public void doPost(HttpServletRequest request, HttpServletResponse response)
  43.                         throws ServletException, IOException {
  44.  
  45.                 response.setContentType("text/html");
  46.                 PrintWriter out = response.getWriter();
  47.                 ServletContext application=this.getServletContext();
  48.                 Bayeux b=(Bayeux)application.getAttribute(Bayeux.DOJOX_COMETD_BAYEUX);
  49.                 List<String> zxlb=(List<String>)application.getAttribute("zxlb");
  50.                 if(null==zxlb){
  51.                         zxlb=new ArrayList<String>();
  52.                 }
  53.                
  54.                 String action=request.getParameter("action");
  55.                 if(action!=null){
  56.                         if(action.equals("nc")){
  57.                                 String nc=request.getParameter("nc");
  58.                                 if(zxlb.contains(nc)){
  59.                                         out.print("<#nccf#>");
  60.                                 }else{
  61.                                         zxlb.add(nc);
  62.                                         application.setAttribute("zxlb", zxlb);
  63.                                         out.print("<#ncok#>");
  64.                                         Channel c=b.getChannel("/Manage", true);
  65.                                         Map<String,Object> message=new HashMap<String,Object>();
  66.                                         String lbStr="";
  67.                                         for(String tempNc:zxlb){
  68.                                                 lbStr=lbStr+tempNc+"<#>";
  69.                                         }
  70.                                         message.put("lbStr", lbStr);
  71.                                         message.put("pubStr", nc+"%u8fdb%u5165%u804a%u5929%u5ba4%uff01\n");
  72.                                         c.publish(b.newClient("server_user"), message, "new_server_message");
  73.                                        
  74.                                        
  75.                                 }
  76.                         }else if(action.equals("tc")){
  77.                                 String nc=request.getParameter("nc");
  78.                                 zxlb.remove(nc);
  79.                                 out.print("<#tcok#>");
  80.                                 Channel c=b.getChannel("/Manage", true);
  81.                                 Map<String,Object> message=new HashMap<String,Object>();
  82.                                 String lbStr="";
  83.                                 for(String tempNc:zxlb){
  84.                                         lbStr=lbStr+tempNc+"<#>";
  85.                                        
  86.                                 }
  87.                                 message.put("lbStr", lbStr);
  88.                                 message.put("pubStr", nc+"%u9000%u51fa%u804a%u5929%u5ba4%uff01\n");
  89.                                 c.publish(b.newClient("server_user"), message, "new_server_message");
  90.                         }
  91.                 }
  92.                
  93.         }
  94.  
  95. }
  96.  

回复 "java“服务推送”实现网页即时聊天,增强用户体验"

这儿你可以回复上面这条便签

captcha