FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
2009-05-17 04:26
836 查看
FMS开发中,经常会使用共享对象来同步用户和存储数据。对于实现广播文字信息实现聊天的支持非常强大,还可以跟踪用户的时时动作,在开发Flash多人在线游戏中的应用也非常广阔。
在使用FMS开发共享对象时需要注意,只有使用Flash Media Interactive Server或Flash Media Development Server这两个版本时才能够创建和使用远程共享对象,来实现多客户端的应用程序之间共享数据。如果是使用的Flash Media Streaming Server版FMS是不能创建远程共享对象的,只能创建本地共享对象,类似于传统Web开发中的Cookie。
使用共享对象(SharedObject)来开发时时文字聊天其实是很简单的,SharedObject可以跟踪和广播消息,连接到SharedObject中的其中任何一个客户端改变了SharedObject中的数据,SharedObject就会将最新的数据广播到连接到它的所有客户端。从某种角度可以理解为远程的SharedObject是一个同步很多用户的一个网络中心。下图为官方发布的SharedObject广播消息图:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.collections.ArrayCollection;
import flex.VO.Message;
private var nc:NetConnection;
private var so:SharedObject;
private function onClick():void
private function onNetStatusHandler(evt:NetStatusEvent):void
private function onSyncHandler(evt:SyncEvent):void
private function onSend():void
private function convertArrayCollection(arrNew:ArrayCollection,arrOld:ArrayCollection):void
]]>
</mx:Script>
<mx:Panel x="22" y="22" width="482" height="260" layout="absolute" id="panChat"
title="文字聊天">
<mx:TextArea x="0" y="0" width="100%" height="100%" backgroundColor="#FCDADA" id="msgText"/>
<mx:ControlBar>
<mx:TextInput width="53" id="txtUser"/>
<mx:Label text="说:"/>
<mx:TextInput width="195" id="txtMessage"/>
<mx:Button label="Send" click="onSend()"/>
<mx:Button label="Connection" fontWeight="normal" click="onClick()"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
程序运行截图如下:
图1----FMS状态图
图2----聊天客户端(张三)
图3----聊天客户端(李四)
如上图,在FMS应用目录下创建了一后缀为.fso的文件,这就是永久性的远程共享对象文件名。在使用远程共享的时候,根据实际需求来确定是否使用永久性的远程共享对象,一般做聊天应用我个人建议使用临时远程共享对象(不生成.fso文件),要存储聊天记录可以通过其他方式来保存。
详细大家可以查看官方提供的文档,在FMS的安装目录下就有,我的是D:\Adobe\Flash Media Server 3\documentation\flashmediaserver_AS3LR\index.html
本文就介绍于此,如文中有什么问题,请大家拍砖指正。[b]本文示例源代码下载[/b]
转自:/article/4658472.html
在使用FMS开发共享对象时需要注意,只有使用Flash Media Interactive Server或Flash Media Development Server这两个版本时才能够创建和使用远程共享对象,来实现多客户端的应用程序之间共享数据。如果是使用的Flash Media Streaming Server版FMS是不能创建远程共享对象的,只能创建本地共享对象,类似于传统Web开发中的Cookie。
使用共享对象(SharedObject)来开发时时文字聊天其实是很简单的,SharedObject可以跟踪和广播消息,连接到SharedObject中的其中任何一个客户端改变了SharedObject中的数据,SharedObject就会将最新的数据广播到连接到它的所有客户端。从某种角度可以理解为远程的SharedObject是一个同步很多用户的一个网络中心。下图为官方发布的SharedObject广播消息图:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.collections.ArrayCollection;
import flex.VO.Message;
private var nc:NetConnection;
private var so:SharedObject;
private function onClick():void
private function onNetStatusHandler(evt:NetStatusEvent):void
private function onSyncHandler(evt:SyncEvent):void
private function onSend():void
private function convertArrayCollection(arrNew:ArrayCollection,arrOld:ArrayCollection):void
]]>
</mx:Script>
<mx:Panel x="22" y="22" width="482" height="260" layout="absolute" id="panChat"
title="文字聊天">
<mx:TextArea x="0" y="0" width="100%" height="100%" backgroundColor="#FCDADA" id="msgText"/>
<mx:ControlBar>
<mx:TextInput width="53" id="txtUser"/>
<mx:Label text="说:"/>
<mx:TextInput width="195" id="txtMessage"/>
<mx:Button label="Send" click="onSend()"/>
<mx:Button label="Connection" fontWeight="normal" click="onClick()"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
程序运行截图如下:
图1----FMS状态图
图2----聊天客户端(张三)
图3----聊天客户端(李四)
如上图,在FMS应用目录下创建了一后缀为.fso的文件,这就是永久性的远程共享对象文件名。在使用远程共享的时候,根据实际需求来确定是否使用永久性的远程共享对象,一般做聊天应用我个人建议使用临时远程共享对象(不生成.fso文件),要存储聊天记录可以通过其他方式来保存。
详细大家可以查看官方提供的文档,在FMS的安装目录下就有,我的是D:\Adobe\Flash Media Server 3\documentation\flashmediaserver_AS3LR\index.html
本文就介绍于此,如文中有什么问题,请大家拍砖指正。[b]本文示例源代码下载[/b]
转自:/article/4658472.html
相关文章推荐
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash) 推荐
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- 使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- 使用stratus +flex+fms远程共享对象实现随机视频聊天
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex) 推荐
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
- FMS3系列(五):通过FMS实现时时视频聊天(Flash|Flex)
- Flex中SharedObject远程共享对象的使用
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例
- FMS3系列(一):第一个FMS程序,连接到FMS服务器(Flash/Flex两种实现)
- Flex中SharedObject对象的使用