- 浏览: 1453886 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
原理和代码都很简单,没什么好说的.
一:利用ShareObject的同步事件来将消息广播到所有客户端:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="BasicPracticeSO();">
- <mx:Script>
- <![CDATA[
- private var nc:NetConnection;
- private var shareObject:SharedObject;
- private var monthDay:Date;
- private var isConnectSuccess:Boolean;
- private static const RTMP_URL:String="rtmp://localhost/BasicSO";
- private function BasicPracticeSO():void{
- nc=new NetConnection;
- nc.connect(RTMP_URL);
- nc.addEventListener(NetStatusEvent.NET_STATUS,operateShareObject);
- }
- private function operateShareObject(evt:NetStatusEvent):void{
- isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success");
- if(isConnectSuccess){
- shareObject=SharedObject.getRemote("userInfo",nc.uri,false);
- monthDay=new Date();
- shareObject.connect(nc);
- shareObject.addEventListener(SyncEvent.SYNC,detectSO);
- }
- }
- private function detectSO(e:SyncEvent):void{
- for(var chng:uint;chng<e.changeList.length;chng++){
- switch(e.changeList[chng].code){
- case "change":
- updateAllClientMsg();
- break;
- case "clear":
- break;
- case "success":
- break;
- default:
- break;
- }
- }
- }
- private function updateAllClientMsg():void{
- soList.text+=shareObject.data.msg+"\n";
- }
- private function addDataToShareObject():void{
- shareObject.setProperty("msg",msgText.text);
- soList.text+=msgText.text+"\n";
- msgText.text="";
- }
- ]]>
- </mx:Script>
- <mx:Label text="ShareObject data:"/>
- <mx:TextArea id="soList" width="300" height="120">
- </mx:TextArea>
- <mx:Form>
- <mx:FormHeading label="add data to ShareObject:"/>
- <mx:FormItem label="msg:">
- <mx:TextInput id="msgText"/>
- </mx:FormItem>
- <mx:FormItem>
- <mx:Button label="send Msg" click="addDataToShareObject();"/>
- </mx:FormItem>
- </mx:Form>
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="BasicPracticeSO();"> <mx:Script> <![CDATA[ private var nc:NetConnection; private var shareObject:SharedObject; private var monthDay:Date; private var isConnectSuccess:Boolean; private static const RTMP_URL:String="rtmp://localhost/BasicSO"; private function BasicPracticeSO():void{ nc=new NetConnection; nc.connect(RTMP_URL); nc.addEventListener(NetStatusEvent.NET_STATUS,operateShareObject); } private function operateShareObject(evt:NetStatusEvent):void{ isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success"); if(isConnectSuccess){ shareObject=SharedObject.getRemote("userInfo",nc.uri,false); monthDay=new Date(); shareObject.connect(nc); shareObject.addEventListener(SyncEvent.SYNC,detectSO); } } private function detectSO(e:SyncEvent):void{ for(var chng:uint;chng<e.changeList.length;chng++){ switch(e.changeList[chng].code){ case "change": updateAllClientMsg(); break; case "clear": break; case "success": break; default: break; } } } private function updateAllClientMsg():void{ soList.text+=shareObject.data.msg+"\n"; } private function addDataToShareObject():void{ shareObject.setProperty("msg",msgText.text); soList.text+=msgText.text+"\n"; msgText.text=""; } ]]> </mx:Script> <mx:Label text="ShareObject data:"/> <mx:TextArea id="soList" width="300" height="120"> </mx:TextArea> <mx:Form> <mx:FormHeading label="add data to ShareObject:"/> <mx:FormItem label="msg:"> <mx:TextInput id="msgText"/> </mx:FormItem> <mx:FormItem> <mx:Button label="send Msg" click="addDataToShareObject();"/> </mx:FormItem> </mx:Form> </mx:Application>
二:在FMS服务端通过编码方试广播消息到所有客户端:
1.客户端代码:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="initAppSO();">
- <mx:Script>
- <![CDATA[
- import com.client.ClientObj;
- private var nc:NetConnection;
- private var shareObject:SharedObject;
- private var monthDay:Date;
- private var isConnectSuccess:Boolean;
- private static const RTMP_URL:String="rtmp://localhost/BasicSO/chat";
- private function initAppSO():void{
- nc=new NetConnection;
- nc.connect(RTMP_URL);
- var clientObj:ClientObj=new ClientObj(soList);
- nc.client=clientObj;
- nc.addEventListener(NetStatusEvent.NET_STATUS,checkStatus);
- }
- private function checkStatus(evt:NetStatusEvent):void{
- isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success");
- if(isConnectSuccess){
- soList.text+="connect success"+"\n";
- }
- }
- private function addDataToShareObject():void{
- var msg:String=msgText.text;
- var responder:Responder=new Responder(callback);
- nc.call("writeFile",responder,msg);
- msgText.text="";
- }
- private function callback(str:String):void{
- // ToDo something
- }
- ]]>
- </mx:Script>
- <mx:Label text="chating list data:"/>
- <mx:TextArea id="soList" width="300" height="220">
- </mx:TextArea>
- <mx:HBox>
- <mx:Label text="msgText:"/>
- <mx:TextInput id="msgText"/>
- <mx:Button label="send Msg" click="addDataToShareObject();"/>
- </mx:HBox>
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="white" layout="vertical" initialize="initAppSO();"> <mx:Script> <![CDATA[ import com.client.ClientObj; private var nc:NetConnection; private var shareObject:SharedObject; private var monthDay:Date; private var isConnectSuccess:Boolean; private static const RTMP_URL:String="rtmp://localhost/BasicSO/chat"; private function initAppSO():void{ nc=new NetConnection; nc.connect(RTMP_URL); var clientObj:ClientObj=new ClientObj(soList); nc.client=clientObj; nc.addEventListener(NetStatusEvent.NET_STATUS,checkStatus); } private function checkStatus(evt:NetStatusEvent):void{ isConnectSuccess=(evt.info.code=="NetConnection.Connect.Success"); if(isConnectSuccess){ soList.text+="connect success"+"\n"; } } private function addDataToShareObject():void{ var msg:String=msgText.text; var responder:Responder=new Responder(callback); nc.call("writeFile",responder,msg); msgText.text=""; } private function callback(str:String):void{ // ToDo something } ]]> </mx:Script> <mx:Label text="chating list data:"/> <mx:TextArea id="soList" width="300" height="220"> </mx:TextArea> <mx:HBox> <mx:Label text="msgText:"/> <mx:TextInput id="msgText"/> <mx:Button label="send Msg" click="addDataToShareObject();"/> </mx:HBox> </mx:Application>
2.FMS服务器端代码:
这里我把聊天记录写到了服务器端的一个文件里.其实写不写都无所谓.
- application.onAppStart=function(){
- trace("app is started");
- };
- application.onConnect=function(client,name){
- client.id=name;
- application.acceptConnection(client);
- var file=new File("chatfile.text");
- client.writeFile=function(msg){
- file.open("text","append");
- if(file.isOpen){
- msg=client.id+":"+client.ip+":say:\n"+msg;
- trace(msg);
- file.write(msg);
- file.close();
- }
- //client.call("serverToClient",null,msg);
- for(var i=0;i<application.clients.length;i++){
- application.clients[i].call("serverToClient",null,msg);
- }
- }
- };
- application.onDisconnect=function(client){
- for(var i=0;i<application.clients.length;i++){
- msg=application.clients[i].id+" left!";
- application.clients[i].call("serverToClient",null,msg);
- }
- }
发表评论
-
控制连接数量和密码保护-flashcom教程 密码保护
2008-10-30 14:03 1240学习flashcom+学习英语(烂到死),无任何目的,本篇仅 ... -
AMF3 + AS 3.0 + ASP.NET 完整配置过程及源文件
2008-09-11 16:04 3584AMF3 + AS 3.0 + ASP.NET 完整配置过程及 ... -
FLEX结合FMS制作在线视频认证
2008-09-09 14:24 3837很多交友网站都具体在线视频认证能,如51.com。参考它的认 ... -
flex 3 + .net开发flash Remoting四[完整代码
2008-08-28 16:11 2215一. 相关说明: 本篇将呈现完整的Flash Remot ... -
FMS Client AS 自訂類別物件傳遞
2008-08-27 15:04 1061透過與 FMS 連線,可以共享 SharedObject 物件 ... -
FMS 常常会用到 3个Call 和3个Send
2008-08-27 14:51 2199FMS 常常会用到 3个Call 和3个Send 关于Flas ... -
flex as3 fms相关的资料(转)
2008-08-27 14:36 1704FMS.rar FMS系列教程http://www.fs2 ... -
视频类
2008-08-27 09:21 1860Flash Player作为流媒体的表现形式之一,视频编码是其 ... -
一步一步学Flash Media Server
2008-08-26 18:03 4359从今天起,我们来学习一下 Flash Media Server ... -
再说说onSync,SharedObject
2008-08-26 16:44 1607* 最多人不懂的就是:那个list参数看代码: my_rso ... -
视频监控软件(2)---异步录像
2008-08-26 16:10 1387不好意思,让大家久等了!今天我要实现的一个功能是异步录像!先讲 ... -
视频监控软件(1)---FMS视频流共享
2008-08-26 16:07 2722呵呵!临近毕业了,本人选择的毕业设计题目是(基于B/S模式的 ... -
flash fms WebService 交互过程
2008-08-26 16:01 1735//flash客户端call服务器端的方法,服务器端调用WS的 ... -
游戏开发常用FMS类
2008-08-26 15:51 1458游戏开发常用FMS类 ... -
FLEX提高篇--------ShareObject对象详解
2008-08-26 14:23 1129ShareObject,顾名思义共享对象,而通常意义上的共享, ... -
客户端呼叫Flash Medis Server3服务端入门
2008-08-26 14:02 1475当你不仅仅只想用FLEX来做纯业务数据的管理时,或者当你的项目 ... -
FLEX提高篇---------FMS简易聊天室加强版
2008-08-26 13:37 1837今天写了下简易聊天室的加强版 , 其实功能也十分有很 , 不过 ... -
Flex连接FMS实现用户列表(使用SharedObject)
2008-08-26 13:33 39911.先在FMS的安装目录中添加自己的应用(例如我的目录D:\M ... -
FMS 教程(SharedObject)用户列表
2008-08-26 13:32 2939FMS实现用户列表,一般都是利用List组件,和SharedO ... -
Fms教程7 理解共享对象
2008-08-26 13:13 1925理解共享对象 共享对象 ...
相关推荐
【标题】"简易聊天室flash多人聊天 FMS实现"揭示了这个项目的核心是构建一个基于Flash的多人在线聊天系统,采用FMS(Flash Media Server)作为后台技术来实现实时的通信功能。Flash是一种广泛应用于网页上的多媒体...
【FMS聊天室下载FMS】相关知识点详解 FMS(Flash Media Server)是由Adobe公司开发的一款流媒体服务器软件,主要用于实时音频、视频的发布和交互。它支持HTTP Live Streaming (HLS)、RTMP(Real Time Messaging ...
【描述】:在“FMS制作聊天室例子”中,开发者可能通过ActionScript 3(AS3)编程语言与FMS进行交互,创建一个能够实时传递消息、实现用户间即时沟通的平台。由于描述中的...
【ASP+FMS语音聊天室】是一种基于ASP技术与FMS(Flash Media Server)构建的实时在线聊天系统。ASP,全称Active Server Pages,是微软开发的一种服务器端脚本环境,用于生成动态网页。FMS则是Adobe公司提供的流媒体...
【描述】"FMS+AS3.0多人聊天室源文件下载"说明我们可以获取到实现这一功能的完整源代码。这意味着开发者或学习者可以深入研究代码结构,理解其工作原理,并根据需要进行自定义修改或扩展。ActionScript 3.0是Flash...
FMS(Flash Media Server)是Adobe公司推出的一款强大的流媒体服务器,它为开发者提供了一种高效、稳定的方式来实现这样的功能。本教程将详细介绍如何利用FMS构建一个简单的视频聊天程序。 【描述】:“利用FMS实现...
【标题】"AS3 + FMS3聊天室"是一个基于ActionScript 3(AS3)编程语言和Flash Media Server 3(FMS3)技术构建的在线聊天室应用。这个项目提供了一个简单但实用的平台,让多个用户可以实时交流分享信息。 【描述】...
在本篇博文中,我们将深入探讨“FMS3系列”的第五部分,主要关注如何通过Adobe Flash Media Server (FMS) 3实现实时视频聊天功能。这个话题对于开发交互性强、实时性高的网络应用来说至关重要,特别是对于那些需要...
【描述】中的反复提及"FMS, flash, 视频聊天"强调了这一系统主要依赖于Adobe Flash技术和FMS服务器来实现视频聊天功能。Flash是一种用于创建动态网页内容的编程语言,特别适合开发交互性强的多媒体应用。视频聊天则...
Flex+FMS写的视频聊天,在本机亲测通过。但唯一不足得是在别的机子上连接不成功。我也不知道为什么。望有才之士能完善。huzhaohui1992@qq.com 如能完善,请给我邮箱一份,在下感激不尽。
Flex和FMS3是构建实时互动应用程序的强大工具,尤其适合创建在线聊天室这样的实时通信平台。这个源码和文档集合提供了详细的步骤和技术说明,帮助开发者理解如何利用这些技术实现一个功能完备的聊天室。 Flex是一种...
在这个“fms之P2P视频聊天”项目中,我们将探讨如何利用FMS和P2P技术来实现高清视频聊天功能,并可能将其扩展到更多的应用场景。 首先,P2P视频聊天的核心在于如何建立两端之间的连接。由于NAT(网络地址转换)的...
以上就是利用 FMS 实现视频实时聊天的核心技术点。从创建 NetConnection 对象到监听连接状态,再到发布视频流,每个步骤都是构建实时视频聊天应用的关键环节。通过这些知识点的学习,可以更好地理解和掌握 FMS 在...
flash+fms2视频聊天室-附带源码 源码在 html页面上有下载的超链接
【标题】中的“通过FMS实现时时视频聊天(Flash|Flex)源码”是指使用Adobe的Flash Media Server (FMS)技术,结合Flash和Flex这两种编程语言,开发出一款能够实现实时视频通信的应用程序。这个标题暗示了我们将在...
标题"Fms.rar_flex_flex and fms_fms_fms rtmp_fms flex"和描述中的关键词揭示了这个压缩包包含的是与Adobe Flex和Flash Media Server(FMS)相关的项目资源,主要用于创建一个实时通信应用,例如聊天室。Flex是一种...
【网页版视频聊天室 视频聊天程序 Feelink V2.5】 在互联网技术日新月异的今天,视频聊天已经成为了人们日常沟通的重要方式。Feelink V2.5是一款专为网页设计的视频聊天软件,它提供了丰富的功能,旨在为用户带来...
【基于FMS的视频聊天源码】是一种使用Adobe Flash Media Server (FMS)技术实现的实时视频聊天应用程序的源代码。这个项目展示了如何利用Flex框架进行客户端开发,并与服务器端的FMS进行交互,实现视频流的传输和聊天...
利用FMS的功能,开发者可以轻松创建简单的聊天室应用。聊天室的基本架构涉及客户端与服务器之间的实时通信,通常采用数据包的形式交换文本消息。开发者需要关注如何高效地处理消息队列,以及如何设计用户界面来显示...