java socket asc_FMS 中xml socket通信在main.asc中的应用

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; };

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值