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

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3