`

记录下自己写的最原始的聊天应用

阅读更多
用dwr实现,主要原理是用到了SessionScript

dwr的java部分:

package com.xinnuo.chat;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;

import com.xinnuo.chat.invoke.ManageSessionScript;

public class Service {
	private  static  Map<String, ScriptSession> hm = new HashMap<String, ScriptSession>();
	

	
	public void sendMessage(String sender, String receiver, String message) {
	
		
		ScriptSession scriptSession=findScriptSession(receiver);
		System.out.println("scriptSession===="+scriptSession);
		ScriptBuffer scriptBuffer = new ScriptBuffer();
		System.out.println("写前");
		scriptBuffer.appendScript("go2(");
		scriptBuffer.appendData(message);
		scriptBuffer.appendScript(");");
		System.out.println("scriptBuffer==="+scriptBuffer);
		scriptSession.addScript(scriptBuffer);
		System.out.println("写后");
	}
	
public void setScriptSession(String id) {
	System.out.println("顾客登入");
	WebContext wc = WebContextFactory.get();
	
	ScriptSession scriptSession = wc.getScriptSession(); // 页面脚本
	System.out.println("scriptSession===="+scriptSession);	
	hm.put(id, scriptSession);
		System.out.println("顾客写入结束");		
	}


private ScriptSession findScriptSession(String userID) {
	
	return hm.get(userID);

}



}



服务端页面:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>

<script language="javascript" src="/commonJs/jquery.js"></script>
<script type="text/javascript" src="/SyntInquiryJs/zuche/jquery.blockUI.js"></script> 
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/KefuService.js'></script>


</script>
</HEAD>

<BODY>
 <input type="text" name="sessionId"  value="<%=request.getSession().getId()%>" />  
<input  id="cc" /><input type="button" onclick=go() />
<script>
function go(){
dwr.engine.setActiveReverseAjax(true);
DWREngine.setAsync(true);
KefuService.setScriptSession("66");
var cc=$("#cc").val();
KefuService.sendMessage("","55",cc);


}



</script>


</BODY>
</HTML>



客服端页面
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language="javascript" src="/commonJs/jquery.js"></script>
<script type="text/javascript" src="/SyntInquiryJs/zuche/jquery.blockUI.js"></script> 
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/interface/KefuService.js'></script>
</HEAD>

<BODY>
 <input type="text" name="sessionId"  value="<%=request.getSession().getId()%>" />  
<script type="text/javascript">

function gg(){
alert("11");
dwr.engine.setActiveReverseAjax(true);
alert("33");
DWREngine.setAsync(true);
KefuService.setScriptSession("55");
alert("22");
}

function go2(a){
   $("#show").val(a);
  
}
</script>


<input id="show" />  <input type="button" onclick=gg() />



</BODY>
</HTML>
分享到:
评论
1 楼 yanxinfeng 2012-08-30  

相关推荐

    QQ2009聊天记录删除器

    总之,【QQ2009聊天记录删除器】是一款利用VC++开发的工具,通过源码我们可以研究其如何实现聊天记录的删除功能,同时也可以看到MFC框架在实际应用中的运用。对于想要学习C++编程,尤其是MFC和Windows程序开发的人员...

    微信聊天数据抓取工具.zip

    微信聊天数据抓取工具是一种专门用于获取微信聊天记录的应用或软件。它允许用户不仅收集个人聊天的记录,还可以抓取群聊中的对话信息。在数据分析、企业内部审计、法律取证或者个人备份聊天记录等场景中,这样的工具...

    聊天应用程序实例

    通过深入学习和分析这个聊天应用程序实例,开发者不仅能掌握C#编程语言的实践应用,还能了解网络编程、用户界面设计等多个方面的知识,为将来开发自己的聊天应用或其他相关项目打下坚实的基础。

    提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告

    HTML格式适合在线查看和分享,它保留了原始聊天的图文样式;Word格式便于编辑和打印,适合整理成报告;而CSV格式则适用于数据分析,因为它是表格形式,可以方便地导入到Excel或其他统计软件中进行进一步分析。 生成...

    JAVA写的聊天程序

    Java编写的聊天程序是一种基于Java编程语言实现的通信应用程序,它允许用户通过网络进行实时文本、音频或视频交流。在Java中开发聊天程序涉及到多个核心概念和技术,包括网络编程、多线程、输入/输出流处理以及可能...

    聊天记录恢复工具 淘晶微信聊天记录恢复助手软件 v5.1.177

    然后,它会扫描手机中的微信应用数据,包括已删除和现有的聊天记录。 4. **预览与恢复**:扫描完成后,软件会列出可恢复的聊天记录。用户可以预览这些记录,选择需要恢复的部分。点击恢复按钮,软件将尝试将选定的...

    C# 代码 写的聊天室

    【C# 代码 写的聊天室】是一个使用C#编程语言实现的多用户聊天应用程序。这个项目旨在为初学者提供一个学习C#基础和网络编程的实例,同时展示了一个功能完善的聊天室界面,设计得既实用又美观。在本文中,我们将深入...

    个人写的一个小型聊天软件

    这个标题揭示了一个重要的知识点,那就是这是一个由个人开发者编写的、小型化的聊天应用程序。通常,这类软件基于网络通信技术,允许用户进行实时的文字、语音甚至视频交流。开发这样的软件涉及到的关键技术可能包括...

    微信记录丢失了?如何恢复微信删除的聊天记录终稿.pdf

    在某些情况下,我们可能遇到扫描不出想要查看的好友记录的情况。这时候,我们可以选择“恢复残留记录”。点击扫描后的链接,将会显示出已经删除的微信记录。然而,因为是残留记录,所以是无法分辨出是哪一位好友的...

    聊天记录被老公删除应该如何恢复?.docx

    在现代社会中,聊天应用程序的普及性极高,人们可以使用智能手机快速发送语音短信、视频、图片和文字等。然而,当聊天记录被删除时,如何恢复它们呢?这篇文章将为您提供一个有效的解决方案。 知识点1:聊天记录...

    30手机聊天记录可作法律证据.docx

    在现代社会,随着科技的发展,电子通信方式已经成为人们日常生活和工作中主要的沟通渠道,尤其是在手机聊天应用的普及下,如微信、QQ等。然而,当这些聊天记录涉及到法律纠纷时,其能否作为有效的法律证据,曾经一直...

    java写的简易QQ聊天

    【标题】"java写的简易QQ聊天"所涉及的知识点主要集中在Java编程语言和网络通信上,我们可以从以下几个方面来详细解读: 1. **Java编程语言基础**:Java是一种跨平台的面向对象的编程语言,其核心特性包括封装、...

    自己做的聊天软件源码

    3. **未提供数据库**:虽然源码中没有包含数据库部分,但一般的聊天软件会使用数据库来存储用户信息、聊天记录等数据。这可能是为了简化示例或避免版权问题,但读者需要自行添加这部分功能。 4. **可自行完成**:这...

    VC写的局域网聊天程序

    "VC写的局域网聊天程序"指的是使用Microsoft Visual C++(简称VC)编程环境开发的一款能够在局域网内实现通信的聊天应用程序。VC是微软提供的一种集成开发环境,支持C++语言,常用于开发Windows平台的应用软件。 ...

    Android应用源码基于WIFI项目._局域网聊天

    在Android平台上,开发一个基于WIFI的局域网聊天应用是一项技术挑战,涉及到网络通信、设备间的数据交换以及用户界面的设计。在这个项目中,开发者利用了Android系统的APIs来实现手机搜索热点、创建热点以及通过...

    与老外ICQ聊天记录(全)--学学怎么用英语聊天.rar

    压缩包中的文件名为“与老外ICQ聊天记录(全)--学学怎么用英语聊天.pdf”,意味着文件是以PDF格式提供的,这是一种常见的文档格式,能够保留原始文本的排版和格式,便于阅读和打印。用户可以通过任何支持PDF的阅读器...

    聊天软件源码

    在这个标题中,“聊天软件源码”指的是一套用于构建聊天应用的原始代码。通常,这样的源码包括客户端和服务器端的代码,它们是聊天应用程序的基础组件。客户端是用户交互的部分,而服务器端则处理数据传输、用户管理...

    Logs_Chat_Record_Extractor:ACT聊天记录加载器

    ACT(Advanced Combat Tracker)是一款广泛应用于大型多人在线角色扮演游戏(MMORPG)的辅助工具,它能够记录玩家的游戏行为,包括聊天记录。然而,原始的日志文件往往以复杂的数据格式存储,不易于直接阅读和分析。...

    在线聊天(.net)

    标题中的“在线聊天(.net)”指的是使用.NET框架开发的在线聊天应用程序。这些应用程序通常基于Web技术,允许用户通过互联网进行实时通信。.NET是微软公司推出的一种开发平台,提供了丰富的库和工具,使得开发者能够...

Global site tag (gtag.js) - Google Analytics