FMS 教程(SharedObject)用户列表

2024-02-09 09:08

本文主要是介绍FMS 教程(SharedObject)用户列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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)
}

这篇关于FMS 教程(SharedObject)用户列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693781

相关文章

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法