FMS 中xml socket通信在main.asc中的应用
来源:互联网 发布:开淘宝怎么样找货源 编辑:程序博客网 时间:2024/06/06 06:32
application.socket = new XMLSocket(); //交互用的TCP socket
application.socket.maxUnprocessedChars = 8192;//设置字符的最大长度
application.isconnect = false;
application.onAppStart = function(){
if (!application.socket.connect(IP, Port))
{
trace ("连接不到服务器:["+IP+":"+Port+"]");
}
var serverStatics = new XML();
var majorrootNode = serverStatics.createElement("ServerInfo");
serverStatics.appendChild(majorrootNode);
var rootNode = serverStatics.createElement("IntoPublish");
majorrootNode.appendChild(rootNode);
var groupNode = serverStatics.createElement("groupid");
var groupValue = serverStatics.createTextNode(application.name + "");
groupNode.appendChild(groupValue);
rootNode.appendChild(groupNode);
var streamNode = serverStatics.createElement("streamid");
var streamValue = serverStatics.createTextNode(application.stream_name + "");
streamNode.appendChild(streamValue);
rootNode.appendChild(streamNode);
application.socket.send(serverStatics);//这个要求对等端也是XMLSocket
delete serverStatics;
}
//收到服务器发过来的xml格式数据,注意(长度+1)
application.socket.onXML = function(doc)
{
trace("doc string is : ", doc.toString());
var index = 0;
var str_ip = "";
var str_port = "";
var app_name = "";
var stream_name = "";
var e = doc.firstChild;
if (e != null && e.nodeName == "Pull")
{
for(var stringNode = e.firstChild; stringNode != null;
stringNode = stringNode.nextSibling, index++)
{
if (stringNode.nodeName == "ori_ip")
{
trace("name is " + stringNode.nodeName);
trace("value is " + stringNode.firstChild.nodeValue);
str_ip = stringNode.firstChild.nodeValue;
}
else if (stringNode.nodeName == "ori_port")
{
trace("name is " + stringNode.nodeName);
trace("value is " + stringNode.firstChild.nodeValue);
str_port = stringNode.firstChild.nodeValue;
}
else if (stringNode.nodeName == "app_name")
{
trace("name is " + stringNode.nodeName);
trace("value is " + stringNode.firstChild.nodeValue);
app_name = stringNode.firstChild.nodeValue;
}
else if (stringNode.nodeName == "stream_name")
{
trace("name is " + stringNode.nodeName);
trace("value is " + stringNode.firstChild.nodeValue);
stream_name = stringNode.firstChild.nodeValue;
}
}
if ( str_ip == "" || str_port == "" || app_name == "" || stream_name == "")
{
trace("this pull stream info not ok", str_ip, str_port, app_name, stream_name);
return;
}
application.pull_connection_name = "rtmp://" + str_ip + ":" + str_port + "/" + app_name;//save the pull stream info
application.pull_groupid = app_name;
application.stream_name = stream_name;
application.stream_name_bk = stream_name;
if ( null == application.myNC )
{
application.myNC = new NetConnection();
application.myNC.onStatus = NC_onStatus;
application.myNC.onBWDone = NC_onBWDone;
}
else
{
application.myNC.close();
}
trace("pull stream is : ", application.pull_connection_name, "application.stream_name is : ", application.stream_name);
application.myNC.connect(application.pull_connection_name);//这里利用收到的远端stream info,进行拉流操作
}
}
application.socket.onConnect = function(success)
{
if (success)
{
application.isconnect = true;
}
};
application.socket.onClose = function()
{
trace("socket连接关闭!");
application.isconnect = false;
};
- FMS 中xml socket通信在main.asc中的应用
- 关于FMS main.asc Method Not Found的问题
- 线程池在socket通信中的应用
- select 在socket通信中的应用
- Socket在局域网通信中应用
- eclipse 编写 fms asc
- 借用FMS做为游戏服务端的main.asc代码编写样例
- fms视频会议系统服务端asc文件
- socket通信中的select应用简要说明
- Socket在Android中的应用
- Socket在Android中的应用
- select在socket中的应用
- socket在ios中的应用
- Android在Socket通信中的辅助类
- java中socket通信中的注意事项
- xml在数据库中的应用
- XPath在xml中的应用
- XML在DELPHI中的应用
- 【Cocos2d-x 3.2】裁剪节点(ClippingNode)总结
- lv包包 dume szpf uaon
- 键盘VK值(共138个)
- regmap使用介绍
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- FMS 中xml socket通信在main.asc中的应用
- 两个指针相减的值的类型问题
- 二叉树的操作
- 打开本地通知
- 微软推出新版Xbox One手柄 配对更迅速
- Linux 服务器之间时间同步
- 阿里大跌8.78% 蒸发200亿美元
- zoj 1037 Gridland
- 最优比率生成树「Pascal代码」