首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Extjs 聊天窗口 -续三 用pushlet来实现

2012-11-22 
Extjs 聊天窗口 -续3 用pushlet来实现?????? 前一篇 自己实现了http长连接 , 很繁琐,后来看到pushlet 好评

Extjs 聊天窗口 -续3 用pushlet来实现

?????? 前一篇 自己实现了http长连接 , 很繁琐,后来看到pushlet 好评如潮 ,就用pushlet 重写了一遍,由于? pushlet ajax api 以及 servlet 使用 get 方法来实现 ,并且对于中文有的问题 ,故 将其改为 post 方式,并对于中文两次编码 。

?

?

?

修改了 ajax api , ajax-pushlet-client.js ,改为 post 方式提交数据 ,并 在网络处状况时 通知 回调函数

?

修改 pushlet servlet , (nl\justobjects\pushlet\servlet\Pushlet.java) 使其支持 post 方式,原来只是支持post xml



首先 ext chat window 的建立: 用了 pushlet 代码就简洁多了 ,我基本上是把pushlet当作一个数据库使用的

?

使用代码 : (代码简要分析见后)

?

?


简单上述代码分析

?

还是很多人问我问题,我就简单解释一下上面代码,本来没打算做教程,只是自己记录一下的呀


报什么错啊,java那个替换好原来的java文件,在pushlet根目录要重新ant编译成一个jar,放在lib下面

ajax.js 放在头部

Ext.onReady 后进行其他处理

首先指明自己要监听的队列

init_my_chat 这个函数


发送消息就是往一个队列发送一个信号:

例如
p_publish('/CHAT/' + receivers_values[i], 'action', 'CHAT', 'msg', encodeURIComponent(encodeURIComponent(content_value)),?
?????????????? 'sender', encodeURIComponent(CURRENTUSERID), 'receivers', encodeURIComponent(receivers_values.join(',')));?

接收消息就是对各种信号处理:

window.onData = function(event)




代码不难的,要细致一点,出错也要告诉我具体的信息才行,用firebug 调试,java 要配置 log4j

?

?

            users.append("loginId:'" + loginId + "',\n");
             users.append("id:'user_" + s.getId() + "',\n");
            users.append("loginName:'" + loginName + "',\n");
            users.append("sessionId:'" + s.getId() + "',\n");
             users.append("iconCls:'user',\n");
            users.append(" singleClickExpand :true,\n");
            users.append("leaf:true\n");
            users.append("}\n"); 11 楼 xiaoyu966 2009-03-29   楼主,我怎么弄不不能让他跑起来。。。主要刚学没多久,毕业设计就要做带数据库的即时聊天。难度太大了。可以给我一份完整的代码吗?
我想参考一下,跪谢!!主要时间实在是不够了,我得新学struts2,spring,ibatis,还有ext。。还有comet。公司给定的题目。每天只有2小时可以学习。有种想跳楼的感觉了。。。 12 楼 yiminghe 2009-03-29   xiaoyu966 写道
楼主,我怎么弄不不能让他跑起来。。。主要刚学没多久,毕业设计就要做带数据库的即时聊天。难度太大了。可以给我一份完整的代码吗?
我想参考一下,跪谢!!主要时间实在是不够了,我得新学struts2,spring,ibatis,还有ext。。还有comet。公司给定的题目。每天只有2小时可以学习。有种想跳楼的感觉了。。。


项目的一部分,后台分解太麻烦,我的建议:

关于pushlet你可以看看
http://www.matrix.org.cn/resource/article/2007-01-16/bcc2c490-a502-11db-8440-755941c7293d.html

后台请努力先看看简单的jsp即可 ,

ext 方面要多看自带的example 13 楼 xiaoyu966 2009-03-30   yiminghe 写道
xiaoyu966 写道
楼主,我怎么弄不不能让他跑起来。。。主要刚学没多久,毕业设计就要做带数据库的即时聊天。难度太大了。可以给我一份完整的代码吗?我想参考一下,跪谢!!主要时间实在是不够了,我得新学struts2,spring,ibatis,还有ext。。还有comet。公司给定的题目。每天只有2小时可以学习。有种想跳楼的感觉了。。。项目的一部分,后台分解太麻烦,我的建议:关于pushlet你可以看看 http://www.matrix.org.cn/resource/article/2007-01-16/bcc2c490-a502-11db-8440-755941c7293d.html后台请努力先看看简单的jsp即可 ,ext 方面要多看自带的example

好的,谢谢你! 14 楼 xiaoyu966 2009-03-30   楼主,可以发一下界面美化中用到的图片吗?实在找不到那些图片。我决定一步一步来,先看着你的代码把界面搭建起来,再慢慢查资料看懂你的代码 15 楼 zhouzelian03 2010-08-22   我发现pushlet2.0.4中的例子chat,用英文就可以聊天,但是用中文就不行了,请问要怎么解决? 16 楼 yiminghe 2010-08-22   zhouzelian03 写道我发现pushlet2.0.4中的例子chat,用英文就可以聊天,但是用中文就不行了,请问要怎么解决?

当时看它的源码好像写死了(编)解码方式,不依赖与服务器配置的话就是用encodeURIComponent 编码发送消息
服务器端程序再解码

这只是权且之计,效率不是很好 17 楼 zhouzelian03 2010-08-22   yiminghe 写道zhouzelian03 写道我发现pushlet2.0.4中的例子chat,用英文就可以聊天,但是用中文就不行了,请问要怎么解决?

当时看它的源码好像写死了(编)解码方式,不依赖与服务器配置的话就是用encodeURIComponent 编码发送消息
服务器端程序再解码

这只是权且之计,效率不是很好


问题解决了,谢谢... 18 楼 McQsad 2010-10-27   我刚开始学习pushlet    正在看pushlet的源码   在pushlet中publish()这个函数在ajax的那个js文件中 是两个参数,为什么在页面调用它是传入的参数很多,可以给解答吗? 19 楼 yiminghe 2010-10-27   McQsad 写道我刚开始学习pushlet    正在看pushlet的源码   在pushlet中publish()这个函数在ajax的那个js文件中 是两个参数,为什么在页面调用它是传入的参数很多,可以给解答吗?

我都忘了,你再仔细看下,似乎代码直接用arguments引用其他参数的吧,不需要形参 20 楼 McQsad 2010-10-27   yiminghe 写道McQsad 写道我刚开始学习pushlet    正在看pushlet的源码   在pushlet中publish()这个函数在ajax的那个js文件中 是两个参数,为什么在页面调用它是传入的参数很多,可以给解答吗?

我都忘了,你再仔细看下,似乎代码直接用arguments引用其他参数的吧,不需要形参


恩  是arguments引用其他参数。我现在看了好多帖子,但是好像也不知道怎么去写一个pushlet的例子,我下载了源码  在其中仔细看chat的那个示例,里面有一个ajax的js文件,还有一个js-pushlet-client的js文件,为什么会有两个。就是觉得东看看,西看看,就迷糊了,想问问你当时是如何看的,如何着手写第一个pushlet的示例,我现在不知道模仿哪个,麻烦了 21 楼 yiminghe 2010-10-27   McQsad 写道yiminghe 写道McQsad 写道我刚开始学习pushlet    正在看pushlet的源码   在pushlet中publish()这个函数在ajax的那个js文件中 是两个参数,为什么在页面调用它是传入的参数很多,可以给解答吗?

我都忘了,你再仔细看下,似乎代码直接用arguments引用其他参数的吧,不需要形参


恩  是arguments引用其他参数。我现在看了好多帖子,但是好像也不知道怎么去写一个pushlet的例子,我下载了源码  在其中仔细看chat的那个示例,里面有一个ajax的js文件,还有一个js-pushlet-client的js文件,为什么会有两个。就是觉得东看看,西看看,就迷糊了,想问问你当时是如何看的,如何着手写第一个pushlet的示例,我现在不知道模仿哪个,麻烦了

给你两个链接仔细看下吧:

https://www.ibm.com/developerworks/cn/web/wa-lo-comet/
http://www.javaworld.com/jw-03-2000/jw-03-pushlet.html 22 楼 McQsad 2010-10-28   yiminghe 写道McQsad 写道yiminghe 写道McQsad 写道我刚开始学习pushlet    正在看pushlet的源码   在pushlet中publish()这个函数在ajax的那个js文件中 是两个参数,为什么在页面调用它是传入的参数很多,可以给解答吗?

我都忘了,你再仔细看下,似乎代码直接用arguments引用其他参数的吧,不需要形参


恩  是arguments引用其他参数。我现在看了好多帖子,但是好像也不知道怎么去写一个pushlet的例子,我下载了源码  在其中仔细看chat的那个示例,里面有一个ajax的js文件,还有一个js-pushlet-client的js文件,为什么会有两个。就是觉得东看看,西看看,就迷糊了,想问问你当时是如何看的,如何着手写第一个pushlet的示例,我现在不知道模仿哪个,麻烦了

给你两个链接仔细看下吧:

https://www.ibm.com/developerworks/cn/web/wa-lo-comet/
http://www.javaworld.com/jw-03-2000/jw-03-pushlet.html


谢谢。。。 再有不懂得再来请教 23 楼 McQsad 2010-10-29   可以把你的qq告诉我吗, 我在chat的例子中有一些问题,我希望可以和你进一步交流  谢谢 24 楼 yiminghe 2010-10-29   McQsad 写道可以把你的qq告诉我吗, 我在chat的例子中有一些问题,我希望可以和你进一步交流  谢谢

一般不上qq,可以直接站内信 25 楼 johnson_liu 2011-01-10   刚学习pushlet这个东西,对于中文问题很是头疼,我对URl进行了俩次转码也改用了POST方式但是就是会出现一用中文session会被removed的~ 26 楼 646158013 2011-04-10   楼主你好。有一个问题。pushlet.srv 找不到是什么情况造成的。还有就是我的字符编码都同意的换成了 utf-8 为什么还有 中文乱码。新手问题还望解答。谢谢、 27 楼 yiminghe 2011-04-11   646158013 写道楼主你好。有一个问题。pushlet.srv 找不到是什么情况造成的。还有就是我的字符编码都同意的换成了 utf-8 为什么还有 中文乱码。新手问题还望解答。谢谢、

好像没用的,一定要自己客户端encodeURIComponent进行编码 28 楼 cuisuqiang 2012-10-08   yiminghe 写道646158013 写道楼主你好。有一个问题。pushlet.srv 找不到是什么情况造成的。还有就是我的字符编码都同意的换成了 utf-8 为什么还有 中文乱码。新手问题还望解答。谢谢、

好像没用的,一定要自己客户端encodeURIComponent进行编码
pushlet传递中文有问题,页面什么都不显示!我的解决方法是后台编码,前台解码!详细见我博客! 29 楼 cuisuqiang 2012-10-08   cuisuqiang 写道yiminghe 写道646158013 写道楼主你好。有一个问题。pushlet.srv 找不到是什么情况造成的。还有就是我的字符编码都同意的换成了 utf-8 为什么还有 中文乱码。新手问题还望解答。谢谢、

好像没用的,一定要自己客户端encodeURIComponent进行编码
pushlet传递中文有问题,页面什么都不显示!我的解决方法是后台编码,前台解码!详细见我博客!
http://cuisuqiang.iteye.com/多指教

热点排行