惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 三千

支持博客园,千万不能倒! [Flash开发笔记] 系列 FMS 中文帮助 (下载) [Flash开发笔记] ComboBox,List组件的二个函数 [Flash开发笔记] AS中保留多少位小数的函数 用C#截取指定长度的中英文混合字符串 改进版 [Flash开发笔记]如何让Flash的swf文件在客户端不缓存 - 三千 - 博客园 [Flash开发笔记] List控件--删除指定label或data的项 - 三千 - 博客园 FMS如何连接FlashRemoting?(附示例源码下载) - 三千 - 博客园 我为什么在joyo购书(2) - 三千 - 博客园 Avant浏览器的插件妙用 我为什么在joyo购书 vss的ss.ini丢失或损坏导致的vss无法登录错误 [Flash开发笔记] Flash 执行exe文件 配置 SQL Server 2005 远程调试存储过程 把AIR update Beta 2 for Flash CS3 安装到Flash CS3 中文版 [Flash开发笔记] Flash中动态文本框与字母间距 [Flash开发笔记] Flash中动态文本框与遮罩的问题 《软件测试技术--测试入门》(ppt下载)
[FMS开发笔记]理解应用程序实例(聊天室房间的划分) - 三千 - 博客园
三千 · 2008-02-29 · via 博客园 - 三千

    在制作聊天室,斗地主游戏等这样的Flash/FMS程序时,可能会涉及到划分房间的问题,比如二个房间的游戏规则相同,功能相同,但是二个房间的数据独立,互不影响。

    那么这种应用,就涉及到应用程序实例了,如以下。

    nc.connect("rtmp://myDomain.com/chat_app/room_01") 
    nc.connect("rtmp://myDomain.com/chat_app/room_02")

    chat_app是一个聊天室程序,room_01和room_02就是chat_app的两个不同实例,整个地址的格式是:

    protocol:[//host][:port]/appname/[instanceName]

    地址中的[instanceName]以方括弧表示可有可无,但是不管这个"instanceName"有没有,它都会连接到了一个实例。
    就是说,任何一个客户机连接到一个应用程序时,这个客户机实际上都是连接到一个应用程序实例(application instances)的。

    比如我们一般的写法:

    nc.connect("rtmp://myDomain.com/my_app");

    本质上他和以下的做法是等同的:

    nc.connect("rtmp://myDomain.com/chat_app/_definst_");

    即在这种情况下,默认连接的实例为"_definst_",并不代表没有实例。

    那么我们就要好好理解一下“实例”,做过高级语言开发的,就很好理解,就象一个类有多个实例一样,它们具有同样的“规则”,但是具有各自不同的“数据”。

    一个实例不需要在服务器上定义它自己的目录。应用程序的资源,比如流和共享对象,对于每个实例而言都是独立的,并且是被存储在这个应用程序的流和共享对象目录下的它们各自的目录中的,比如实例room_01使用的SharedObject对象(比如叫"my_rso"),会存储在"\chat_app\sharedobjects\room_01\my_rso.fso"。

    使用应用程序实例的另一个原因是可以避免由这个应用程序创建的记录流或共享对象的冲突。例如,在上面的例子中,room_01和room_02都使用main.asc中的程序规则和逻辑,但是他们的数据各自独立,互不影响。由room_01创建的任何流或共享对象与由room_02创建的都是截然不同的,虽然这两个实例都是运行在同一个应用程序chat_app。