Adobe的FMS真的是一个倍儿牛叉的技术!(至少Silverlight在"实时广播"方面目前还没有任何能超越FMS的迹象)

曾经盛极一时的tudou,ku6,第一视频...等一大堆视频分享类网站,几乎都使用的是Adobe的FMS技术.

今天先来做一个最简单的Hello World(例子出自FMS的官方文档)

1.先创建一个FMS应用HelloWorld

进入FMS的默认安装目录: C:\Program Files\Adobe\Flash Media Server 3.5\applications

在这下面创建一个HelloWorld目录即可

2.打开Flash Cs4,创建一个 Flash文件(ActionScript3.0),保存为"HelloWorld.fla"

拖二个按钮到舞台上,命名为btnConn,btnDisConn;对应的label文本为:"连接到FMS","断开与FMS的连接"

再拖一个Label到舞台上,命名为lblResult,用来显示操作结果

在第一帧上写入以下代码:

import flash.net.NetConnection;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;var nc:NetConnection;//注册事件
btnConn.addEventListener(MouseEvent.CLICK,btnConnClick);
btnDisConn.addEventListener(MouseEvent.CLICK,btnDisConnClick);function btnConnClick(e:MouseEvent) {if (nc==null) {nc = new NetConnection();nc.addEventListener(NetStatusEvent.NET_STATUS,connHandler);//每当连接状态有变化时,会自动调用 connHandlernc.connect("rtmp://localhost/HelloWorld");lblResult.text="正在连接FMS...";}}function btnDisConnClick(e:MouseEvent) {if (nc!=null) {nc.close();nc=null;     }
}function connHandler(e:NetStatusEvent) {trace(e.info.code);switch (e.info.code) {case "NetConnection.Connect.Closed" :lblResult.text="成功关闭连接";break;case "NetConnection.Connect.Failed" :lblResult.text="连接尝试失败";break;case "NetConnection.Connect.Success" :lblResult.text="连接尝试成功";var resp:Responder = new Responder(onReply);nc.call("serverHelloMsg", resp, "Hi FMS!");//调用服务端的serverHelloMsg的方法break;case "NetConnection.Connect.Rejected" :lblResult.text="连接尝试没有访问应用程序的权限";break;default :lblResult.text=e.info.code;break;}
}function onReply(e:Object){trace("服务端返回内容:" + e);lblResult.text = e.toString();}

上面演示了如何"连接到服务器"、"断开连接"、"调用服务端的方法",先不要急着运行,因为我们服务端的serverHelloMsg方法还没写呢

3.创建FMS服务端代码

定位到C:\Program Files\Adobe\Flash Media Server 3.5\applications\HelloWorld 新建一个main.asc的文本文件,写入以下代码

application.onConnect = function(client){  client.serverHelloMsg = function(helloStr){ trace(helloStr);return "Hello, " + helloStr + "!";  }  application.acceptConnection(client);
}

服务端有二个特殊对象application,client;用来生成“应用实例”以及“对客户端的引用”,注意服务端的trace(helloStr),我们知道Flash CS4中trace的信息会显示在flash输出窗口中,而服务端没有输出窗口,输出的信息将会自动保存到

C:\Program Files\Adobe\Flash Media Server 3.5\logs\_defaultVHost_\HelloWorld\_definst_\application.xx.log

保存的内容类似下面这样:
#Version: 1.0

#Start-Date: 2010-03-14 13:38:08

#Software: Adobe Flash Media Server 3.5.1 r516

#Date: 2010-03-14

#Fields: date time x-pid x-status x-ctx x-comment

2010-03-14 13:38:05 8152 (s)2641173 Hi FMS! -

好了,回到Flash Cs4中,按下Ctrl + Enter可以运行了

原文地址:http://www.cnblogs.com/yjmyzz/archive/2010/03/14/1685481.html

转:FMS 3.5之Hello World!相关推荐

  1. 在多台FMS服务器之间共享流

    FMS有一个非常重要的功能,那就是可以在多台服务器之间共享流. 利用这一功能,我们可以把源服务器上的流分发到其它的服务器,这些获得流的服务器同样可以作为新的源服务器使用.这个功能有点象FMS集群. 我 ...

  2. 安装Exchange2013,FMS服务无法达到启动状态

    http://blog.csdn.net/dyllove98/article/details/9247045f 1. 安装以上步骤进行安装Exchange2013, 其中在开始安装,安装到第7步,提示 ...

  3. Understanding the Framework (理解FMS框架)

    FMS Framework 由 600 行没有文档的代码组成,毫无疑问很多开发者会开发自己的框架. 在本章,load几个.asc 文件,就在application中使用load()命令.比如: mai ...

  4. FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端

    有时候我们希望从FMS服务器上获取指定的文件,再传送到服务端进行操作. 由于是文件操作,客户端我们很正常就会想到byteArray类,服务端使用File类. 另外~由于服务端必不支持ByteArray ...

  5. Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室

    先来看客户端fla的构成: 第一帧:登录界面 第一帧的代码: show sourceview source print? 01 import flash.events.MouseEvent; 02 i ...

  6. FMS(Flash Media Server)共享内存问题解决

    FMS(Flash Media Server)共享内存问题解决 1)FMS报错信息 Apr 16 10:21:56 LSCRtest2 Server[21642]: Process (21642) : ...

  7. FMS3系列(二):创建可交互的FMS连接--I can say:Hello World

    在做FMS开发中,flash客户端与FMS服务器通信交互数据等是常见的,比如flash客户端需要一播放一个视频,需要获得FMS发向flash端的一条消息等.那么我们要怎么才能实现flash客户端与FM ...

  8. fms安装教程 linux_FMS安装

    FMS安装 1. 修改密码 # passwd root # ElighT2013-08-20 # ElighT2013-08-20 2. 系统升级 # yum update 3. 挂载数据盘 查看目前 ...

  9. FMS3系列(三):创建基于FMS的流媒体播放程序

    本文主要介绍怎么去创建基于FMS的流媒体播放程序,Flash客户端通过网络加载FMS服务器上的视频流文件(.flv,.mp4等),实现视频流的播放. 要实现媒体流文件的播放是非常简单的,只要在FMS服 ...

最新文章

  1. Android与iOS对比
  2. c语言fac函数求n的阶乘,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...
  3. 《MonoTouch开发实践指南》一1.2 创建MonoTouch应用程序
  4. C++基类与派生类的转换与多态性
  5. android文件读写
  6. 开发 Windows 8 Bing地图应用(2)
  7. 使用Xshell连接Ubuntu详解
  8. 21 MM配置-采购-定义采购组
  9. java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)
  10. C语言输入中10A20B,C语言实验报告第3章答案.doc
  11. python 新建一列_python – 如何在迭代pandas数据框时创建新列并插入行值
  12. Android开发中的SQLite事务处理,即beginTransaction()方法
  13. 开关电源磁性元件设计
  14. 怎么把mxf转换成mp4?
  15. 优思学院|朱兰,质量改进的先驱者
  16. 造梦无双服务器维护12月17日,《造梦无双》12月31日V0.82版本更新公告:迎战北王,寻斗天君...
  17. springbootadmin 客户端监控配置
  18. linux 第十五天 linuxprobe
  19. 软件测试中一般术语的的英文缩写
  20. 解题:POI 2011 Strongbox

热门文章

  1. 字节「大力」做教育,依然技术思维,1万员工参与,三年不考虑盈利
  2. 超过Google,微信AI在NLP领域又获一项世界第一
  3. 好物推荐 | 轻薄神器,妈妈再也不用担心我的颈椎了
  4. 英伟达推出Super显卡,老黄再现精准“刀法”,网友:都是被AMD逼的
  5. 怎么注册今日头条?哪里可以直接购置?
  6. bcftools合并vcf文件
  7. 一行代码集成带负数的自定义键盘
  8. ansible register when: result | succeeded when: item.rc != 0
  9. Laravel5 打印SQL
  10. 如何用OneNote分享长微博