FMS实现用户列表,一般都是利用List组件,和SharedObject来实现的。
接下来我就教你怎么做用户列表。ready..
先看用户端:
新建一个as2.0文档,从组件面板中拖出List组件到舞台上,命名为userList
点击时间轴第一帧,按F9
//code begin
var nc:NetConnection = new NetConnection()
nc.onStatus = function(info){
trace(info.code)
}
nc.connect("rtmp:/userList","lulu");
//getRemote 连接到服务器远端的so,false表示是临时的so,或者true为记录在服务器。
//如果这里改为true,那么相应的在服务器端也要改为true,不然两者会冲突....
var userList_so:SharedObject =SharedObject.getRemote("list", nc.uri, false);
userList_so.onSync = function(){
//只要列表变化 则将list清空
_root.userlist.removeAll()
//循环so的属性,将属性添加到list中
for(var p in this.data){
_root.userlist.addItem(p)
}
}
//这是最关键的,并且要在onSync 后connect
userList_so.connect(nc)
//code end
再看服务器端:
在applications目录下新建一个目录:userList
新建一个main.asc
用编辑器打开,
//code start
application.onAppStart = function ()
{
//服务器端就不是getRemote了,而是get,这里的list和用户端的list要保持一致,意为连接到同一个so。
//如果客户端改为true,这里也要改为true,保持一致
userList_so = SharedObject.get ("list","false");
}
application.onConnect = function (client, name)
{
//给client写入userName 属性,以便断开的时候读取
client.userName = name;
//写入属性,以用户名为属性
userList_so.setProperty (name, name);
return true;
}
application.onDisconnect = function(client)
{
//断开的时候,从列表中清除
userList_so.setProperty(client.userName,null);
}
//code end
好了,回到flash,ctrl+enter 你看到列表中的lulu了么。。。
改变nc.connect("rtmp:/userList","lulu")中的lulu 为其它用户名,另存几个flash,同时打开,看看是不是能看见所有人了?
server端会记录每一个client的所有信息,你可以往client里面写入属性,以便在需要的时候读取。
client的类型为object:
基本属性有:
ip、.secure、uri、referrer、agent、protocol
你可以在onConnect 的时候输出如下代码察看
application.onConnect = function (client, name)
{
trace(client.ip+":"+client.protocol)
}
源文件下载
分享到:
相关推荐
3. SharedObject的运用:可能讲解了如何使用SharedObject来存储和共享聊天记录,以及如何在用户之间同步数据。 4. 中文说明文档:提供了详细的步骤和解释,帮助开发者理解源码的工作原理,以及如何在自己的项目中...
可以通过NetConnection创建不同的共享对象实例,如`SharedObject.getRemote('CustomerInfo', first_nc.URI, false)`。 通过以上步骤,开发者可以构建出基于FMS的多媒体应用,包括视频聊天、在线教育、直播等。FMS的...
- **永久的远程共享对象**:在客户端代码中,使用`SharedObject.getRemote()`并设置`persistence`参数为`true`,或在服务器端使用`SharedObject.get()`创建。这些对象以.fso扩展名存储在服务器上的特定目录下。 **...
2. **消息传递**:通过NetStream或SharedObject类实现实时文本或数据传输。 3. **用户身份验证**:可能包含登录注册系统,确保只有合法用户能参与聊天。 4. **聊天界面**:使用ActionScript 3.0编写前端界面,显示...
videoList_so = SharedObject.getRemote("name", netConnection.uri, true); ``` 其中,"name"是共享对象的名称,`netConnection.uri`是服务器的连接地址,`true`表示即使断开连接也要在服务器上保留共享对象。 ...
这个实例讲解了如何在FMS中建立和管理SharedObject,实现用户数据的存储和同步,这对于多人在线游戏或协作应用至关重要。 3. **RecordStream**: 记录流功能允许用户捕获并存储来自摄像头或麦克风的实时流媒体内容。...
在线用户的状态通过FMS的共享对象(SharedObject)来维护。每个用户登录后,其在线状态会更新到SharedObject中,这样所有客户端都能实时获取到当前在线用户的信息。这种方式提高了效率,减少了服务器的负担,因为...
**Application.clearSharedObjects()** 方法用于清除指定路径的共享对象(Shared Object)。共享对象是存储在服务器上的轻量级数据存储,类似于客户端的Cookie,但适用于服务器和多个客户端之间同步数据。 除此之外...
SharedObject是客户端和服务器之间同步数据的一种机制,当用户登录时,其在线状态会被更新并广播给其他用户,实现在线用户列表的实时更新。 此外,案例开发还包括了如何创建可交互的FMS连接、基于FMS的流媒体播放...
`var so:SharedObject = SharedObject.getLocal("mydata", "/");` 这行代码创建了一个名为“mydata”的本地共享对象,指定的路径"/"表示该对象将在应用程序的根目录下。 2. 存储数据: `var user:Object = new ...
- **定义**:SharedObject类允许在多个本地或远程的SWF客户端之间共享即时数据。 - **用途**:适用于需要在多个客户端之间同步数据的场景。 ##### 7. System类 - **定义**:System类包含了多个与发生在用户计算机...
- `first_so = SharedObject.getRemote('CustomerInfo', first_nc.URI, false);` - `first_so.connect(first_nc.URI);` 在另一个实例中,可以重复以上步骤,但使用不同的连接URL和共享对象。 通过这种方式,Flex...
SharedObject则提供了客户端和服务器间的数据共享机制,特别适用于实现游戏中的同步操作。 编写第一个程序包括创建服务器端和客户端代码。服务器端通常用Java编写,实现所需的服务接口;客户端代码则采用...
- **概念解析**:SharedObject是Red5中用于存储跨连接会话数据的机制,能够在不同用户间共享信息,适用于游戏中的移动同步等场景。 - **移动同步原理**:通过SharedObject,游戏中的玩家移动和其他动态信息能够实时...
// targetObject是用于存储录音的SharedObject或FileReference ``` 3. **MP3压缩**: 要将WAV格式的录音数据转换为MP3,我们需要一个编码库,如AS3CoreLib或FlashMP3Encoder。这些库提供了将PCM(脉冲编码调制)...
3. **编程接口**:重点介绍ActionScript 3.0的API,包括NetConnection、NetStream、SharedObject等类的使用,这些API允许开发者控制媒体流、处理用户交互和数据交换。 4. **媒体管理**:解释如何发布、管理和控制...