`
czpae86
  • 浏览: 720585 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

pushlet + Extjs 聊天室v0.9 (含源码)

 
阅读更多

聊天室v0.9 该版本实现了简单的聊天功能,是一个pushlet的入门例子,仅供学习之用.

如果大家完善了某些功能请发贴共享一下!谢谢! !

 

使用了:pushlet 2.0.4 + Extjs4.0.2

服务器:tomcat6.0+

 

 

效果图:

 


 


 


 

 

  • 大小: 151.9 KB
  • 大小: 187.5 KB
  • 大小: 196.9 KB
分享到:
评论
21 楼 一水无间 2016-12-15  
20 楼 windy0605 2013-09-22  
lz
有中文乱码吧
19 楼 sc_zcx 2012-12-12  
thank you!
18 楼 k11hao 2012-11-18  
如果用普通的js代码写就好了,加上了exts后,看着都晕
17 楼 ggh666 2012-09-07  
怎么把其他人加进来聊天啊
16 楼 elan1986 2012-01-17  
挺不错的!
15 楼 lijinghao0310 2011-06-25  
一直想做服务器推送这块  正好下来看看  谢谢分享!
14 楼 czpae86 2011-06-24  
eredlab 写道
偶前几也弄了一下,想用Pushlet做一个向客户端广播消息的功能:比如管理员发布一个消息后,所有建立了长连接的客户端将实时的收到这个消息。但做的时候碰到个问题如下.不知楼主是否碰到,望赐教

 

<div>hi,jounne</div>
<div><br></div>
<div>i previewed that your discussion on chrome'issue about pushlets comet
technology.  </div>
<div>At last you say "Content-Type: application/octet-stream" will work。But it
does not work for me.</div>
<div>So , i write to u for help.</div>
<div><br></div>
<div>my problems as follows:</div>
<div><br></div>
<div>I use pushlets created a long connection to request a method to get some
infos via this long connection</div>
<div>without refresh my page. it works very well on firefox but what a big pity
on chrome. </div>
<div><br></div>
<div>The detail is that, after i send the request via firefox client, i
monitored the long connection is effective with firebug, </div>
<div>i received data bit by bit from server; but this state disappear into thin
air when i use chrome client, </div>
<div>the chrome can create connection too, but the connection is not long
connection, i monitored that the request was growing.</div>
<div>it is one request one response。</div>
<div><br></div>
<div>my code as follows:</div>
<div><br></div>
<div>JavaCode</div>
<div><span style="color: #800000;">static public class SystemStatusEventPullSource
extends EventPullSource {</span></div>
<div><span style="color: #800000;">Runtime runtime = Runtime.getRuntime();</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">public long getSleepTime() {</span></div>
<div><span style="color: #800000;">return 1000;</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">public Event pullEvent() {</span></div>
<div><span style="color: #800000;">Event event =
Event.createDataEvent("/system/jvm");</span></div>
<div><span style="color: #800000;">event.setField("已申请到的内存", "" +
runtime.totalMemory());</span></div>
<div><span style="color: #800000;">event.setField("空闲内存", "" +
runtime.freeMemory());</span></div>
<div><span style="color: #800000;">event.setField("可申请分配的内存", "" +
runtime.maxMemory());</span></div>
<div><span style="color: #800000;">int activeCount = Thread.activeCount();</span></div>
<div><span style="color: #800000;">event.setField("threads", "" +
activeCount);</span></div>
<div><span style="color: #800000;">return event;</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;">}</span></div>
<div><br></div>
<div><br></div>
<div>ClientCode</div>
<div><span style="color: #800000;">     <script
type="text/javascript"></span></div>
<div><span style="color: #800000;">       <span style="white-space: pre;"> </span>//
Initialization</span></div>
<div><span style="color: #800000;">function init() {</span></div>
<div><span style="color: #800000;">p_join_listen('/system/jvm');</span></div>
<div><span style="color: #800000;">  }</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">// Event Callback: display all events</span></div>
<div><span style="color: #800000;">function onEvent(event) {</span></div>
<div><span style="color: #800000;">document.eventDisplay.EVENT.value =
event.toString();</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;"></script></span></div>
<div><br></div>
<div>Finally, i modified the pushlets source code follow your workaround. </div>
<div>BrowserAdapter.java  </div>
<div>Line 42</div>
<div>servletRsp.setContentType("text/html;charset=UTF-8");</div>
<div>TO</div>
<div>servletRsp.setContentType("application/octet-stream");</div>
<div><br></div>
<div>that is all.</div>
<div><br></div>
<div>Best wishes!</div>
<div><br></div>
<div>XiongChun from KunMing China.</div>
<div><br></div>
<div><br></div>
<div>另外一个问题是我在<span style="color: #800000;">pullEvent()方法中如何获取到登录用户的回话信息啊?</span>
</div>


pullEvent()方法中如何获取到登录用户的回话信息啊:
这个我都没有实现,
pushlet代码不多,跟踪一下应该可以得到结果,可以去实现EventSource接口


13 楼 czpae86 2011-06-24  
476461775 写道
楼主是否可以用于项目?


是一个pushlet的入门例子,仅供学习之用.想用于项目,那就要按实际改良一下
12 楼 476461775 2011-06-24  
楼主是否可以用于项目?
11 楼 afei1689 2011-06-24  
webIM可关注一下webmq
10 楼 sosyi 2011-06-24  
多发几次就没反应了??
9 楼 xsz 2011-06-22  
楼主,发布代码是删掉某些东西了。不能多用户在线
8 楼 freespace 2011-06-22  
做长连接可以试试NodeJS做服务器端,socket.io做客户端连接。
7 楼 wangyj0898 2011-06-22  
效果还是非常好的 ·!
6 楼 同学、木 2011-06-21  
V5。看看。
5 楼 eredlab 2011-06-21  
<p>偶前几也弄了一下,想用Pushlet做一个向客户端广播消息的功能:比如管理员发布一个消息后,所有建立了长连接的客户端将实时的收到这个消息。但做的时候碰到个问题如下.不知楼主是否碰到,望赐教</p>
<p> </p>
<div>hi,jounne</div>
<div><br></div>
<div>i previewed that your discussion on chrome'issue about pushlets comet
technology.  </div>
<div>At last you say "Content-Type: application/octet-stream" will work。But it
does not work for me.</div>
<div>So , i write to u for help.</div>
<div><br></div>
<div>my problems as follows:</div>
<div><br></div>
<div>I use pushlets created a long connection to request a method to get some
infos via this long connection</div>
<div>without refresh my page. it works very well on firefox but what a big pity
on chrome. </div>
<div><br></div>
<div>The detail is that, after i send the request via firefox client, i
monitored the long connection is effective with firebug, </div>
<div>i received data bit by bit from server; but this state disappear into thin
air when i use chrome client, </div>
<div>the chrome can create connection too, but the connection is not long
connection, i monitored that the request was growing.</div>
<div>it is one request one response。</div>
<div><br></div>
<div>my code as follows:</div>
<div><br></div>
<div><strong><em>JavaCode</em></strong></div>
<div><span style="color: #800000;">static public class SystemStatusEventPullSource
extends EventPullSource {</span></div>
<div><span style="color: #800000;">Runtime runtime = Runtime.getRuntime();</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">public long getSleepTime() {</span></div>
<div><span style="color: #800000;">return 1000;</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">public Event pullEvent() {</span></div>
<div><span style="color: #800000;">Event event =
Event.createDataEvent("/system/jvm");</span></div>
<div><span style="color: #800000;">event.setField("已申请到的内存", "" +
runtime.totalMemory());</span></div>
<div><span style="color: #800000;">event.setField("空闲内存", "" +
runtime.freeMemory());</span></div>
<div><span style="color: #800000;">event.setField("可申请分配的内存", "" +
runtime.maxMemory());</span></div>
<div><span style="color: #800000;">int activeCount = Thread.activeCount();</span></div>
<div><span style="color: #800000;">event.setField("threads", "" +
activeCount);</span></div>
<div><span style="color: #800000;">return event;</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;">}</span></div>
<div><br></div>
<div><br></div>
<div><strong><em>ClientCode</em></strong></div>
<div><span style="color: #800000;">     &lt;script
type="text/javascript"&gt;</span></div>
<div><span style="color: #800000;">       <span style="white-space: pre;"> </span>//
Initialization</span></div>
<div><span style="color: #800000;">function init() {</span></div>
<div><span style="color: #800000;">p_join_listen('/system/jvm');</span></div>
<div><span style="color: #800000;">  }</span></div>
<div><span style="color: #800000;"><br></span></div>
<div><span style="color: #800000;">// Event Callback: display all events</span></div>
<div><span style="color: #800000;">function onEvent(event) {</span></div>
<div><span style="color: #800000;">document.eventDisplay.EVENT.value =
event.toString();</span></div>
<div><span style="color: #800000;">}</span></div>
<div><span style="color: #800000;">&lt;/script&gt;</span></div>
<div><br></div>
<div>Finally, i modified the pushlets source code follow your workaround. </div>
<div>BrowserAdapter.java  </div>
<div>Line 42</div>
<div>servletRsp.setContentType("text/html;charset=UTF-8");</div>
<div>TO</div>
<div>servletRsp.setContentType("application/octet-stream");</div>
<div><br></div>
<div>that is all.</div>
<div><br></div>
<div>Best wishes!</div>
<div><br></div>
<div>XiongChun from KunMing China.</div>
<div><br></div>
<div><br></div>
<div>另外一个问题是我在<span style="color: #800000;">pullEvent()方法中如何获取到登录用户的回话信息啊?</span>
</div>
4 楼 eredlab 2011-06-21  
楼主V5。下来看看。
3 楼 czpae86 2011-06-21  
w3cweb 写道
相应的Jar包你没有提交的吧


我用的是pushlet的源码,不是jar包.
2 楼 w3cweb 2011-06-21  
相应的Jar包你没有提交的吧

相关推荐

    Ext demopushlet + Extjs 聊天室v0.9 (含源码)

    【标题】"Ext demopushlet + Extjs 聊天室v0.9 (含源码)" 是一个基于Web的实时聊天应用示例,它整合了Pushlet技术和ExtJS库,提供了完整的源代码供开发者学习和参考。Pushlet是一种推送技术,用于实现实时数据从...

    pushlet+extjs实现聊天组

    在IT行业中,构建实时通信系统是一项常见的挑战,而"pushlet+extjs实现聊天组"这一主题正是针对这个问题提供的一种解决方案。Pushlet和ExtJS分别是两个关键的技术组件,它们共同作用于创建一个简易的聊天组应用。 ...

    pushlet+extjs实现的聊天组

    【标题】:“Pushlet+ExtJS实现的聊天组”是一个基于特定技术栈构建的在线实时通信系统,旨在提供一种简洁的多人交流环境。Pushlet是一个轻量级的服务器端组件,用于实现实时数据推送,而ExtJS则是一个强大的前端...

    基于pushlet web 实时聊天系统

    在该项目中,Pushlet源码被用于实现实时聊天功能。Pushlet的核心思想是通过长连接来维持客户端与服务器之间的通信通道,当服务器端有新消息时,可以立即通过这个通道推送给客户端,而无需客户端频繁发起请求。这种...

    Extjs 聊天窗口 -续2 - http长连接的实现

    标题中的“Extjs 聊天窗口 -续2 - http长连接的实现”指的是一个关于使用Extjs构建聊天窗口,并且实现HTTP长连接的技术分享。Extjs是一个流行的JavaScript框架,常用于开发富客户端应用程序,而HTTP长连接是解决传统...

    pushlet_2.0.3_源码分析_服务器端__

    本文将深入分析Pushlet 2.0.3的服务器端源码,了解其架构、工作原理及关键实现。 **总体架构** Pushlet 的架构主要包括服务器端和客户端两部分。服务器端基于Servlet技术,负责监听客户端请求,并通过不同的adapter...

    使用Ext Pushlet 实现的点对点聊天功能最新

    实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...

    pushlet实现简单的用户聊天

    在IT行业中,Pushlet是一种基于Java的推送技术,主要用于实现实时的数据传输,尤其是在Web应用中创建实时聊天、通知服务等功能。Pushlet是基于HTTP连接持久化的概念,它允许服务器主动向客户端推送数据,而无需...

    使用Ext Pushlet 实现的点对点聊天功能

    实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...

    http长连接(服务器推)使用pushlet教程示例以及jar包源码

    提供的压缩包文件包括了Pushlet框架的源码、使用文档和示例,可以帮助开发者快速理解和应用Pushlet。例如,"使用Pushlet来实现服务器端向客户端推送信息.doc"文档会详细解释如何配置和使用Pushlet Server来发送数据...

    Pushlet学习(二) -- Pushlet CookBook部分翻译 + 注释

    Pushlet可以用于实时聊天系统、股票报价、在线游戏等多种实时交互的应用场景。通过Pushlet,开发者可以构建出更高效、更实时的Web应用。 总结,Pushlet作为早期的Comet技术,为实时Web应用提供了可能。虽然现代Web...

    pushlet 之 Pushlet使用手把手实例

    1. 下载与安装:首先,你需要从Caucho官网或者其他开源仓库下载Pushlet的源码,然后根据项目文档进行编译和部署。 2. 创建客户端:客户端通常是一个Web应用,使用JavaScript或者Java Applet来实现与Pushlet服务器的...

    pushlet

    在实际应用中,Pushlet技术可以用于实时股票更新、聊天室、在线游戏、协作工具等多种场景。开发者可以通过解压提供的pushlet-2.0.3压缩包,获取源代码、文档和示例,以便更好地理解和集成Pushlet到自己的项目中。 ...

    pushlet.jar 和示例工程

    压缩包wjw465150-Pushlet-09f5559可能包含了Pushlet框架的源码、文档、配置示例和一个运行示例工程。源码可以帮助开发者理解内部工作原理,以便进行定制和扩展。文档通常会详述如何配置和使用Pushlet,包括设置...

    pushlet jar包下载

    服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet

    pushlet定时向前台推送消息

    这在需要实时更新数据的应用场景,如股票交易、在线聊天、实时通知等中非常有用。 在"pushlet定时向前台推送消息"的场景中,Pushlet被用来创建一个能够定时发送消息到前端的应用。这个应用可能包含以下几个关键组成...

    comet 框架 之 pushlet

    在Web应用中,尤其是在需要实时更新信息的场景下(如聊天室、股票行情、在线游戏等),Comet技术能显著提高用户体验,因为它可以即时地将服务器的更新推送给客户端,而无需客户端频繁请求。 Pushlet是Comet框架的一...

    pushlet服务器推技术例子

    通过上述机制,Pushlet服务器推技术实例能够实现高效的实时通信,尤其适用于需要实时交互的应用,如在线聊天室、实时股票报价等。在压缩包文件“pushlet”中,可能包含了实现Pushlet技术的源代码、配置文件和示例...

    pushlet简单配置应用

    Pushlet是一种基于Java的实时数据推送技术,由荷兰JustObjects公司开发。Pushlet库的核心功能是实现实时的服务器向客户端推送数据,而无需客户端频繁发起请求,这大大提高了网络应用的效率和用户体验。以下是对...

    pushlet的JAR包和文档

    【Pushlet的JAR包和文档】是一组与实时通信技术相关的资源,主要涉及Pushlet项目,这是一种基于Java...通过学习这些内容,可以掌握如何利用Pushlet创建实时的Web应用,例如在线聊天、实时股票报价、游戏同步等场景。

Global site tag (gtag.js) - Google Analytics