js实现网页在线聊天功能(四)

// 处理返回信息的函数
function GET_SIGN_SEND_WJL_MY_OK() {
  if (Send_WJL_MY_Message_001.readyState == 4) { // 判断对象状态
     if (Send_WJL_MY_Message_001.status == 200) { // 信息已经成功返回,开始处理信息
      var sralt=Send_WJL_MY_Message_001.responseText;
   //本处放置数据库显示是否发送成功@!
      
    
     } else { //页面不正常
         alert("发送信息失败!请重新发送!");
     }
  }
}
//向数据库中发送数据SID指发送的用户,RID指接收的ID
function Sent_Message(){
 Send_Now_MY_Message_WJL(_url+"这里放您的请求页面可以是jsp,php,asp等?SID="+_SID+"&RID="+_RID+"&Msg="+_MyMessage);
 document.getElementById("Editr_wjl_001_E").contentWindow.document.body.innerHTML="";
}
//向数据库中读取数据,最新的数据SID指发送的用户,RID指接收的ID
//发送信息到数据库中
var Rec_WJL_MY_Message_001 = false;
function Rec_Now_MY_Message_WJL(url){//初始化、指定处理函数、发送请求的函数
 Rec_WJL_MY_Message_001 = false;
//开始初始化XMLHttpRequest对象
 if(window.XMLHttpRequest){ //Mozilla 浏览器
   Rec_WJL_MY_Message_001 = new XMLHttpRequest();
   if (Rec_WJL_MY_Message_001.overrideMimeType) {//设置MiME类别
   Rec_WJL_MY_Message_001.overrideMimeType('text/xml');
   }
 }else if(window.ActiveXObject){ // IE浏览器
   try{
       Rec_WJL_MY_Message_001 = new ActiveXObject("Msxml2.XMLHTTP");
   }catch(e){
       try{
              Rec_WJL_MY_Message_001 = new ActiveXObject("Microsoft.XMLHTTP");
       }catch (e){
   }
   }
 }
 if (!Rec_WJL_MY_Message_001) { // 异常,创建对象实例失败
   window.alert("不能创建XMLHttpRequest对象实例.");
   return false;
 }
 Rec_WJL_MY_Message_001.onreadystatechange = GET_SIGN_REC_WJL_MY_OK;
 // 确定发送请求的方式和URL以及是否同步执行下段代码
 Rec_WJL_MY_Message_001.open("GET", url, true);
 Rec_WJL_MY_Message_001.send(null);
}
// 处理返回信息的函数
function GET_SIGN_REC_WJL_MY_OK() {
  if (Rec_WJL_MY_Message_001.readyState == 4) { // 判断对象状态
     if (Rec_WJL_MY_Message_001.status == 200) { // 信息已经成功返回,开始处理信息
      var sralt=Rec_WJL_MY_Message_001.responseText;
   //本处放置数据库显示是否发送成功@!
   var div = document.getElementById('MAIN_DIV_0001_WJL_MESSAGE');  
   div.innerHTML=sralt;
   //有新的信息时将滚动条置底部
   if(_cache!=sralt){
    _cache=sralt;
    div.scrollTop = div.scrollHeight;
   }else{
    //div.scrollTop = div.scrollHeight;
   }
    
     } else { //页面不正常
         alert("发送信息失败!请重新发送!");
     }
  }
}
/**************
一段时间判断一次!
如果有新的数据则获取,没有新数据则不用获取数据
时间为300MS
*****************/
function Get_Message(){
 var temp=Math.floor(Math.random()*100000+1);
 Rec_Now_MY_Message_WJL(_url+"这里放您的请求页面可以是jsp,php,asp等?SID="+_SID+"&RID="+_RID+"&clop_wjl_asdfh="+temp);
 window.setTimeout("Get_Message();",300);
}
/*************
最后一步:调用函数
*************/
function Chat(SID,RID){
 if(SID!=RID){
  var url=location.href;
  if(url.indexOf("CAS")!=-1){
   _url="../";
  }
  //包含新消息提示
  //初始化接收和发送者
  _SID=SID;
  _RID=RID;
  //200一下为群功能
  if(RID<1000){
   if(RID==1){
   _RNAME="装饰团购网";
   _RTYPE="及时咨询";
   }
   if(RID==2){
   _RNAME="装饰团购网";
   _RTYPE="问题求助";
   }
   if(RID==3){
   _RNAME="装饰团购网";
   _RTYPE="管理投诉";
   }
  }else{
   _RNAME="商家";
  }
  //500-1000为单个咨询
  
  Create_Main_Div();
  Get_Message();
 }else{
  alert("不能和自己聊天!");
 }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现网页聊天功能,需要使用前端的技术如HTML、CSS、JavaScript,以及后端技术如Java Servlet或者JSP等。 以下是一个简单的网页聊天功能的界面代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Web Chat</title> <style> #messages { height: 300px; overflow-y: scroll; } </style> </head> <body> <h1>Web Chat</h1> <div id="messages"></div> <form onsubmit="return sendMessage()"> <input type="text" id="messageInput" placeholder="Type your message here..."> <button>Send</button> </form> <script> var socket = new WebSocket("ws://localhost:8080/chat"); socket.onmessage = function(event) { var message = event.data; var messagesDiv = document.getElementById("messages"); messagesDiv.innerHTML += "<p>" + message + "</p>"; }; function sendMessage() { var messageInput = document.getElementById("messageInput"); socket.send(messageInput.value); messageInput.value = ""; return false; } </script> </body> </html> ``` 这个界面代码示例中包含一个聊天消息展示区域和一个消息发送表单。通过JavaScript中的WebSocket对象建立连接并监听接收到的消息,将接收到的消息显示在聊天消息展示区域中。同时,发送表单中的消息通过WebSocket对象发送到服务器端。 在服务器端,可以使用Java Servlet或JSP来处理WebSocket连接和消息的收发。这里给出一个简单的Servlet代码示例: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.websocket.OnMessage; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/chat") @WebServlet("/chat") public class ChatServlet extends HttpServlet { private static final long serialVersionUID = 1L; private Session session; @OnMessage public void onMessage(String message) throws IOException { session.getBasicRemote().sendText(message); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/WEB-INF/chat.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // handle form submission } @Override public void onOpen(Session session) { this.session = session; } @Override public void onClose(Session session) { this.session = null; } } ``` 这个Servlet代码示例使用了Java WebSocket API,通过@ServerEndpoint注解声明WebSocket连接地址,并在onOpen、onClose和@OnMessage注解的方法中处理WebSocket连接和消息的收发。同时,doGet方法用于返回聊天界面,doPost方法用于处理表单提交,但这里并没有实现表单处理的相关代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值