Flash Media Server 起步(7)与server端交互
该页内容已经修改并整理到了fms入门教程内,您可以点击下边的链接查看最新修改的内容
http://www.nshen.net/blog/article.asp?id=509
这是目前为止最难的了吧~~
要直接看原文件的点这里:
整理后就几行代码不过多解释
客户端呼叫服务器
fla:
服务器端代码是放在main.asc里的,你可以到你的application下的你的目录下建一个main.asc,写代码
main.asc:
服务器端呼叫客户端
fla:
main.asc:
http://www.nshen.net/blog/article.asp?id=509
这是目前为止最难的了吧~~

整理后就几行代码不过多解释
客户端呼叫服务器
fla:
//客户端呼叫server端msgfromclient函数,并将返回值trace出来
mync = new NetConnection();
mync.connect("rtmp://localhost/connect");
//返回值
var resObj = new Object();
resObj.onResult = function(val):Void {
trace("val"+val);
};
mync.call("msgfromclient", resObj, "第一个call");
mync = new NetConnection();
mync.connect("rtmp://localhost/connect");
//返回值
var resObj = new Object();
resObj.onResult = function(val):Void {
trace("val"+val);
};
mync.call("msgfromclient", resObj, "第一个call");
服务器端代码是放在main.asc里的,你可以到你的application下的你的目录下建一个main.asc,写代码
main.asc:
//要把函数定义到Client上!!
application.onConnect = function(client) {
/* 在这里定义也可以,在Client.prototype里定义也可以
client.msgfromclient=function(what){
trace(what+"进来了")
var aa="呼叫成功并返回结果"
return aa
}
*/
application.acceptConnection(client);
};
Client.prototype.msgfromclient=function(what){
trace(what+"进来了")
var aa="呼叫成功并返回结果"
return aa
}
application.onConnect = function(client) {
/* 在这里定义也可以,在Client.prototype里定义也可以
client.msgfromclient=function(what){
trace(what+"进来了")
var aa="呼叫成功并返回结果"
return aa
}
*/
application.acceptConnection(client);
};
Client.prototype.msgfromclient=function(what){
trace(what+"进来了")
var aa="呼叫成功并返回结果"
return aa
}
服务器端呼叫客户端
fla:
//server呼叫client端
//要把函数定义到nc上!!
//
mync = new NetConnection();
mync.onStatus = function(info) {
if (info.code == "NetConnection.Connect.Success") {
trace("连接成功");
}
};
mync.connect("rtmp://localhost/connect");
mync.msgfromserver = function(msg) {
trace(msg);
};
//要把函数定义到nc上!!
//
mync = new NetConnection();
mync.onStatus = function(info) {
if (info.code == "NetConnection.Connect.Success") {
trace("连接成功");
}
};
mync.connect("rtmp://localhost/connect");
mync.msgfromserver = function(msg) {
trace(msg);
};
main.asc:
application.onConnect = function(client) {
application.acceptConnection(client);
client.call("msgfromserver",null,"服务器叫你啊")
};
服务器端很少要求客户端返回值,如果一定要返回,一本书上是这么写的,没细看
application.acceptConnection(client);
client.call("msgfromserver",null,"服务器叫你啊")
};
// Define a class that just stores the client ID.
AreYouOkResultHandler = function (clientID) {
this.clientID = clientID;
};
// Handle the result of calling areYouOk( ).
AreYouOkResultHandler.onResult = function (val) {
trace("Client " + this.clientID + " returned " + val);
};
application.pingClient = function (clientObj, clientID) {
// Invoke a message on the client.
clientObj.call("areYouOk", new AreYouOkResultHandler(clientID));
};
AreYouOkResultHandler = function (clientID) {
this.clientID = clientID;
};
// Handle the result of calling areYouOk( ).
AreYouOkResultHandler.onResult = function (val) {
trace("Client " + this.clientID + " returned " + val);
};
application.pingClient = function (clientObj, clientID) {
// Invoke a message on the client.
clientObj.call("areYouOk", new AreYouOkResultHandler(clientID));
};