后台维护界面展现:
后台首页
账户及其人员列表
人员的组织及其所在群组的维护页面就不在展现下面展现客户端。
用户登录
鼠标悬停
维护状态
鼠标右键
查看人员信息
查看聊天记录
维护个人资料
聊天窗口
互相附件传送
IM实现消息提醒
实现群组之间的聊天
以上是IM(即时通信)一些基本功能的简介,好了就先到此为止吧。。。。。
在Pushlet的应用方面希望可以与大家相互交流,互相学习。
JavaScript两种发送消息的方式不用多说
1、Ajax保持心跳的即时通信
2、往前台输送HTML的即时通信
下面贴Java实现即时通信的代码
package com.jlee.im;
import java.util.Map;
import nl.justobjects.pushlet.client.PushletClient;
import nl.justobjects.pushlet.client.PushletClientListener;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.Protocol;
public class SystemChatEngine extends Thread implements PushletClientListener, Protocol {
// private static SystemChatEngine systemChatEngine = new SystemChatEngine("http://localhost:8888/im/pushlet.srv");
private static SystemChatEngine engine = null ;
private PushletClient pushletClient;
private Map<String ,String> attributemap ;
private String aHosturl=null;
private String SUBJECT = "/pushlet/ping";
private String imSubject = null;
private SystemChatEngine(String aHosturl, String subject, String imSubject, Map<String ,String> map) {
this.aHosturl = aHosturl;
this.SUBJECT = subject ;
this.attributemap = map ;
this.imSubject = imSubject ;
}
public static SystemChatEngine getInstance(String aHosturl, String subject ,String imSubject ,Map<String ,String> map){
if(engine==null){
engine = new SystemChatEngine(aHosturl,subject,imSubject,map) ;
engine.start() ;
}
return engine ;
}
public void run() {
try {
pushletClient = new PushletClient(aHosturl);
pushletClient.setDebug(false);
pushletClient.setUid(attributemap.get("uid")) ;
pushletClient.join();
pushletClient.listen(this, Protocol.MODE_PULL,SUBJECT);
System.out.println("pushletClient started");
pushletClient.publish(imSubject, attributemap);
} catch (Exception e) {
e.printStackTrace();
return;
}
}
/** Error occurred. */
public void onError(String message) {
System.out.println(message);
}
/** Abort event from server. */
public void onAbort(Event theEvent) {
}
/** Data event from server. */
public void onData(Event theEvent) {
String meSessionID = theEvent.getField("uid");
}
/** Heartbeat event from server. */
public void onHeartbeat(Event theEvent) {
}
public void onRefresh(Event theEvent) {
}
public void onJoinListenAck(Event theEvent) {
String meSessionID = theEvent.getField("uid");
}
public void onListenAck(Event theEvent) {
String meSessionID = theEvent.getField("uid");
}
/**
* @return pushletClient
*/
// public static PushletClient getPushletClient() {
// while(systemChatEngine.pushletClient==null){}
// return systemChatEngine.pushletClient;
// }
/** Main program. */
// public static void main(String args[]) {
// systemChatEngine.start();
// }
}
package com.jlee.im;
import java.util.HashMap;
import java.util.Map;
import sun.misc.BASE64Encoder;
public class WebIMClient {
static SystemChatEngine engine = null ;
public void sendTask()throws Exception{
Map<String ,String> attributemap = new HashMap<String, String>() ;
BASE64Encoder encoder = new BASE64Encoder();
String fromName = encoder.encode("jlee".getBytes("utf-8")) ;
String message = java.net.URLEncoder.encode(
encoder.encode(
"<a href='#' title='http://www.baidu.com' name='alabel'>baidu</a>去百度查IM".getBytes("utf-8"))) ;
String remark = encoder.encode("备注".getBytes("utf-8")) ;
String title = encoder.encode("主题1".getBytes("utf-8")) ;
String msgType = encoder.encode("类型1".getBytes("utf-8")) ;
String msgGroup = encoder.encode("self".getBytes("utf-8")) ;//self(表示消息来自系统OA)或者other(消息来自其他系统)
attributemap.put("uid" ,"728852348a9f4c219f9666facef19356") ;//该字段不会进入数据库,只是充当Pushlet所依赖的Id
attributemap.put("fromId", "728852348a9f4c219f9666facef19356") ;
attributemap.put("fromName", fromName) ;
attributemap.put("toId", "86523b57993048a0b82bd06772e432dd") ;
attributemap.put("toGroupId", null) ;
attributemap.put("message", message) ;
attributemap.put("remark", remark) ;
attributemap.put("title", title) ;
attributemap.put("msgType", msgType) ;
attributemap.put("msgGroup", msgGroup) ;
engine = SystemChatEngine.getInstance(
"http://localhost:8888/im/pushlet.srv", "/pushlet/ping,/task/warn","/task/warn", attributemap) ;
}
public static void main(String[] args) {
WebIMClient client = new WebIMClient() ;
try {
client.sendTask() ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 大小: 24.5 KB
- 大小: 21.4 KB
- 大小: 9.3 KB
- 大小: 36.7 KB
- 大小: 36.8 KB
- 大小: 37.7 KB
- 大小: 9.4 KB
- 大小: 10.5 KB
- 大小: 30.9 KB
- 大小: 25.1 KB
- 大小: 8.7 KB
- 大小: 24.5 KB
- 大小: 19 KB
分享到:
相关推荐
总之,Pushlet技术为实时通信提供了一种高效且灵活的解决方案,特别适合需要实时更新数据的场景,如在线聊天、股票行情、游戏等。通过学习和实践"pushlet实现简单的用户聊天",开发者可以掌握这种技术,并将其应用于...
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
bsIM.war,基于pushlet WebQq
PUSHLET是一种基于Java技术实现的即时通讯系统,它允许服务器主动向客户端推送数据,而无需客户端持续轮询请求。这种技术在实时性要求高的应用中非常常见,如在线聊天、股票交易、游戏等场景。本实例将展示如何在...
Pushlet 是一种基于 Java 的实时通信框架,用于实现在服务器端向客户端主动推送消息的功能,而无需客户端不断轮询。这种技术在构建实时应用程序,如聊天室、实时股票更新或在线游戏等场景中非常有用。以下是关于 ...
【基于Pushlet实现的JSP网站消息推送】 在Web开发中,实时消息推送技术是提升用户体验的关键要素之一。传统的HTTP协议是一种无状态、请求-响应式的协议,这意味着服务器只有在客户端发起请求时才会进行交互。然而,...
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
Pushlet和Comet技术是Web服务器向浏览器推送数据的两种策略,主要用于实现实时的、双向的通信。这两种技术在传统的HTTP协议基础上进行了扩展,克服了HTTP请求-响应模型的限制,使得服务器能够主动向客户端推送数据,...
标题中的“通过推送机制(Tomcat comet,pushlet)实现进度条”涉及到的是Web应用中的一种实时通信技术,主要用于提供动态更新和用户交互。这里主要介绍Tomcat的Comet和Pushlet技术,以及如何利用它们来创建一个...
5. **bsIM.war**:这是一个WAR文件,通常包含了一个Java Web应用程序的全部部署内容,可能是一个使用Pushlet实现的即时通讯(IM)应用示例,可以直接在支持Java的Web服务器上部署运行。 6. **pushlet_文档.doc**:...
使用Pushlet来实现服务器端向客户端推送信息
在B/S架构下,由于浏览器与服务器之间的交互受限于HTTP协议的无状态性,Pushlet_Chat提供了一种有效突破这一限制的方法,实现了即时通信的可能。 3. **中文乱码问题** 在处理中文字符时,编码不一致常常导致乱码...
总的来说,Pushlet技术为实现Web应用的实时通信提供了一种有效的方法,通过其特有的推送机制,极大地提高了用户体验和应用效率。开发者可以通过深入研究和实践Pushlet 2.0.3,掌握这一技术并在合适的项目中发挥它的...
通过深入研究这些文档和源码,你可以了解到Pushlet是如何在底层利用HTTP长连接来实现实时通信的,并掌握如何在自己的项目中集成和使用Pushlet框架,以实现高效、低延迟的服务器推功能。对于网页间通信,特别是需要...
Pushlet的核心思想是通过一个持久化的HTTP连接来保持服务器与客户端之间的通信,使得服务器可以在有新数据时立即发送给客户端,而不是等待客户端的下一次请求。这样就大大减少了网络交互的次数,减轻了服务器的压力...
通过上述机制,Pushlet服务器推技术实例能够实现高效的实时通信,尤其适用于需要实时交互的应用,如在线聊天室、实时股票报价等。在压缩包文件“pushlet”中,可能包含了实现Pushlet技术的源代码、配置文件和示例...
Pushlet库的核心功能是实现实时的服务器向客户端推送数据,而无需客户端频繁发起请求,这大大提高了网络应用的效率和用户体验。以下是对Pushlet配置应用的详细解释: 1. **引入Pushlet.jar**:首先,你需要在你的...
"消息推送"是Pushlet的关键特性,它通过Comet技术实现双向通信,使得服务器能主动向浏览器或其他客户端应用推送数据,提高了用户体验和应用的实时性。 压缩包wjw465150-Pushlet-09f5559可能包含了Pushlet框架的源码...
Pushlet是一种轻量级的、基于服务器推送(Server-Sent Events, SSE)技术,用于实现实时数据传输,特别是在Web应用中实现消息即时通知。 在Web开发中,传统的HTTP协议是基于请求-响应模型的,即客户端发起请求,...
Pushlet的核心理念是通过长连接保持客户端与服务器之间的通信,从而实现实时数据推送。 Pushlet系统主要包括两部分:Pushlet服务器和Pushlet客户端。Pushlet服务器使用Servlet容器(如Tomcat)运行,处理来自客户端...