请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 12589|回复: 15

[服务器端交互] 自编flash+asp聊天室,附源码 [复制链接]

newlyj 楼主
帖子
337
体力
548
威望
8
发表于 2007-10-30 17:45:26 |显示全部楼层
昨天弄好的,因为要发出来,今天把源文件整理了一下,删除了以前留下的一些冗余代码.
这个聊天室是刚开始是想模仿icq网站上的那个的,好像是8月份编了开头,后面有一些功能想不到实现的方法(特别是诗聊和实时退出),想了几个晚上想不到,我才破戒下了icq上面那个flash把它“解剖”,发现里面有一大堆"Socket ",于是我决定不编了 .
   上个星期无意看到了一篇文章说了asp私聊(无需写文件的那种)原来挺简单的只是没想到,虽然还不能完全达到原来想要的效果.于是花了一星期把它完成了.主要是期间还换过方法,调试来说说程序几个"难点"大概的实现原理(高手免疫 goto end),需要懂一些asp其实和那些直接在网页上的聊天室差不多,只是在flash中表现而已,刷新的时候不会闪动,可以比较方便的美化界面.
   asp 方面
1,让公共聊天记录只保持固定的条数,新加入用户只能看到他加入以后的聊天记录.
挺简单的,第一天就想到了,把每条聊天记录分开用apllication变量来存.
不太好表述了,请看源代码中的flashchat.asp,所有的处理都在里面.
2,私聊
把每个用户私聊信息存在application(session(""你的用户名""))里
如下面
chatto=Request.from("chatto")
chattxt=Request.from("chattxt")
application(session(chatto))=chattxt
Response。write(application(session("username")))
session("username")是你的用户名(在登陆时已经赋予),chatto是你要说悄悄话对象的用户名,chattxt是悄悄话内容,如果chatto="a",chattxt="你好"时,application("a")被赋予"你好",后面那句Response。write(application(session("username"))) 也只有当叫"a"的用户访问才会显示(就是application("a")的值)."b"用户访问则是输出aplication("b")的值,当然是空了.
3,实时退出
本来以为是不可能的,但没想到ie的onunload事件(在html上的js)可以在窗口关了以
后的少许时间还可以执行代码.ff不行,这里有说过http://bbs.blueidea.com/viewthread.php?tid=2803728&highlight=
在放flash的html加上onunload事件,内容是调用chatexit.asp(内容是清除session,清掉application("用户名"),并把这个用户名从列表中删掉).用xmlhttpRequest来open它就行了.(具体请看chat.htm),另外还要防止浏览器非正常关闭(死机,停电),没机会触发onunload事件.还要在Global.asa的session_onend中添加相应的代码,把
chatexit.asp的内容复制过去就好了,session的timeout时间到就执行。我在flashchat.asp中设了session.timeout=2,如果影响网站可以删掉session.timeout=2。

flash方面
这方面好像没什么难点的,简单说说了
与asp的交互是用loadvar,用sentandload来刷新(每3秒),聊天内容每3秒刷一

次,asp方面检测传过来的聊天数据,为空则不做任何处理.用户列表每15秒刷新一次(

这是flash内部的刷新).
用户列表的实现是用比较土的方法,先在asp中用一个application变量来存所有的用

户名(只在第一次进来才存,用“|"隔开),然后在flash中将它split.放到右边用代码

创建的mc上.
( 可怕,写贴过程中浏览器忽然down掉,好在写长贴时会定时备份一下,就备份到这里)

说说程序的使用
单击用户列表中的用户名可以对他悄悄话.单击上面的"公共"或"私人"来切换显示
flashchat.asp中的maxnum是设置公共区最多显示条数,默认是9,私人区没有限制.
文件很小不到20k,icq上的那个130k,界面也是同样简陋的,可能是用了图形组件.
因为我不想用组件所以临时自定义了两个简单的滚动条类,没有箭头的.忘了说了,因为ff
onunload的原因,所以把非ie浏览器禁了(在chat.htm里).

好了,就怎么多了,技术不高,高手见笑了。源码在下面.(不知道是不是发错区了,
asp内容更多一些)

在线演示http://www.lzmoon.cn/mytest/chat.htm (空间不稳定,建议下源码自己测试)


(11.1修正了一个错误)

[ 本帖最后由 newlyj 于 2007-11-1 10:41 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 1 人评分威望 收起 理由
jimohuoshan + 2 谢谢分享

总评分: 威望 + 2   查看全部评分

西部数码顶级域名注册商39元抢注!

flash023

版主

帖子
13150
体力
26346
威望
10
居住地
重庆市 永川市
发表于 2007-10-30 17:53:33 |显示全部楼层
不错,嘿嘿,支持!!!
我的博客 http://space.flash8.net/space/?591172 AS2&AS3   ASP&PHP ACCESS&mySQL XML&JS
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

yzgxww 

薛伟

高级会员

帖子
433
体力
533
威望
0
发表于 2007-10-30 19:55:52 |显示全部楼层

利用asp保留缓存的那种,具体我也不知怎么说了,总之就是假``没见过真正的flash聊天功能源码吧?
我就有,在公司我写的前台类,我同事写的FMS,可公聊与私聊``

使用道具 举报

呜呜龙

中级会员

帖子
239
体力
487
威望
0
发表于 2007-10-30 21:07:21 |显示全部楼层
能实现功能就行啊,管它用什么实现的。FMS环境太少了。

使用道具 举报

呜呜龙

中级会员

帖子
239
体力
487
威望
0
发表于 2007-10-30 21:13:53 |显示全部楼层
要是能够不用js就好了,也就是不依赖网页。

使用道具 举报

apaper 

一张纸条

银牌会员

帖子
380
体力
1310
威望
2
居住地
山东省 青岛市
发表于 2007-10-30 21:14:45 |显示全部楼层
为大家也提供一个
http://www.52ria.com/html/Source ... es/20071022/81.html

也是flash做的聊天室!
黑羽推荐:www.52ria.com[专注RIA开源网站]

使用道具 举报

newlyj 楼主
帖子
337
体力
548
威望
8
发表于 2007-10-30 22:24:44 |显示全部楼层
原帖由 yzgxww 于 2007-10-30 19:55 发表
利用asp保留缓存的那种,具体我也不知怎么说了,总之就是假``没见过真正的flash聊天功能源码吧?
我就有,在公司我写的前台类,我同事写的FMS,可公聊与私聊``


! 哪里假?

使用道具 举报

帖子
37
体力
90
威望
0
发表于 2007-10-31 06:08:59 |显示全部楼层
厉害啊!佩服佩服啊!

使用道具 举报

帖子
5
体力
20
威望
0
居住地
山东省 青岛市
发表于 2008-4-23 21:29:09 |显示全部楼层
好  呵呵

使用道具 举报

HBrO 
帖子
7398
体力
32121
威望
241
居住地
广东省 广州市
发表于 2008-4-24 01:30:23 |显示全部楼层
用ASP实现聊天功能是件相对繁琐的事情来的,不过想这种简单的,用ASP尚可,就是同步性相对会差一些。

使用道具 举报

HBrO 
帖子
7398
体力
32121
威望
241
居住地
广东省 广州市
发表于 2008-4-24 23:39:50 |显示全部楼层
对了,忘了告诉楼主一件事情。你的单词有几个拼写错了

使用道具 举报

帖子
65
体力
147
威望
0
居住地
四川省 成都市
发表于 2008-4-24 23:55:23 |显示全部楼层
不错~~~

使用道具 举报

帖子
1
体力
7
威望
0
发表于 2008-9-22 22:06:25 |显示全部楼层
看看是不是好东西,是就顶你两下

使用道具 举报

帖子
49
体力
241
威望
0
居住地
广东省 东莞市
发表于 2008-10-4 12:06:56 |显示全部楼层
学习了

使用道具 举报

帖子
1
体力
12
威望
0
居住地
湖北省 武汉市
发表于 2008-12-14 11:04:05 |显示全部楼层
原帖由 yzgxww 于 2007-10-30 19:55 发表
利用asp保留缓存的那种,具体我也不知怎么说了,总之就是假``没见过真正的flash聊天功能源码吧?
我就有,在公司我写的前台类,我同事写的FMS,可公聊与私聊``

你说假,你把不假的发上来大家看哈哉!楼主花这么大功夫共享给我们已经不错了。

使用道具 举报

hquu 
帖子
111
体力
94
威望
0
居住地
重庆市 九龙坡区
发表于 2009-6-22 14:30:58 |显示全部楼层
对头!
确实要支持哈!
说别个假的人
你拿个真的出来给大家共享哈萨!
FLASH网站369772066

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 09:11 , Processed in 0.108635 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部