转:FMS 3.5之Hello World!
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!相关推荐
- 在多台FMS服务器之间共享流
FMS有一个非常重要的功能,那就是可以在多台服务器之间共享流. 利用这一功能,我们可以把源服务器上的流分发到其它的服务器,这些获得流的服务器同样可以作为新的源服务器使用.这个功能有点象FMS集群. 我 ...
- 安装Exchange2013,FMS服务无法达到启动状态
http://blog.csdn.net/dyllove98/article/details/9247045f 1. 安装以上步骤进行安装Exchange2013, 其中在开始安装,安装到第7步,提示 ...
- Understanding the Framework (理解FMS框架)
FMS Framework 由 600 行没有文档的代码组成,毫无疑问很多开发者会开发自己的框架. 在本章,load几个.asc 文件,就在application中使用load()命令.比如: mai ...
- FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端
有时候我们希望从FMS服务器上获取指定的文件,再传送到服务端进行操作. 由于是文件操作,客户端我们很正常就会想到byteArray类,服务端使用File类. 另外~由于服务端必不支持ByteArray ...
- Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室
先来看客户端fla的构成: 第一帧:登录界面 第一帧的代码: show sourceview source print? 01 import flash.events.MouseEvent; 02 i ...
- FMS(Flash Media Server)共享内存问题解决
FMS(Flash Media Server)共享内存问题解决 1)FMS报错信息 Apr 16 10:21:56 LSCRtest2 Server[21642]: Process (21642) : ...
- FMS3系列(二):创建可交互的FMS连接--I can say:Hello World
在做FMS开发中,flash客户端与FMS服务器通信交互数据等是常见的,比如flash客户端需要一播放一个视频,需要获得FMS发向flash端的一条消息等.那么我们要怎么才能实现flash客户端与FM ...
- fms安装教程 linux_FMS安装
FMS安装 1. 修改密码 # passwd root # ElighT2013-08-20 # ElighT2013-08-20 2. 系统升级 # yum update 3. 挂载数据盘 查看目前 ...
- FMS3系列(三):创建基于FMS的流媒体播放程序
本文主要介绍怎么去创建基于FMS的流媒体播放程序,Flash客户端通过网络加载FMS服务器上的视频流文件(.flv,.mp4等),实现视频流的播放. 要实现媒体流文件的播放是非常简单的,只要在FMS服 ...
最新文章
- Android与iOS对比
- c语言fac函数求n的阶乘,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...
- 《MonoTouch开发实践指南》一1.2 创建MonoTouch应用程序
- C++基类与派生类的转换与多态性
- android文件读写
- 开发 Windows 8 Bing地图应用(2)
- 使用Xshell连接Ubuntu详解
- 21 MM配置-采购-定义采购组
- java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)
- C语言输入中10A20B,C语言实验报告第3章答案.doc
- python 新建一列_python – 如何在迭代pandas数据框时创建新列并插入行值
- Android开发中的SQLite事务处理,即beginTransaction()方法
- 开关电源磁性元件设计
- 怎么把mxf转换成mp4?
- 优思学院|朱兰,质量改进的先驱者
- 造梦无双服务器维护12月17日,《造梦无双》12月31日V0.82版本更新公告:迎战北王,寻斗天君...
- springbootadmin 客户端监控配置
- linux 第十五天 linuxprobe
- 软件测试中一般术语的的英文缩写
- 解题:POI 2011 Strongbox
热门文章
- 字节「大力」做教育,依然技术思维,1万员工参与,三年不考虑盈利
- 超过Google,微信AI在NLP领域又获一项世界第一
- 好物推荐 | 轻薄神器,妈妈再也不用担心我的颈椎了
- 英伟达推出Super显卡,老黄再现精准“刀法”,网友:都是被AMD逼的
- 怎么注册今日头条?哪里可以直接购置?
- bcftools合并vcf文件
- 一行代码集成带负数的自定义键盘
- ansible register when: result | succeeded when: item.rc != 0
- Laravel5 打印SQL
- 如何用OneNote分享长微博