使用Flash的XMLSocket与Servlet建立长连接(6,建立测试的jsp)

来源:互联网 发布:淘宝优惠论坛 编辑:程序博客网 时间:2024/04/28 11:35

使用Flash的XMLSocket与Servlet建立长连接(6,建立测试的jsp)

下面的测试jsp用于对我们之前所作的工作进行测试
这里并不包含全部的代码,比如
 header.jsp                           include文件, 里面定义了一些页面常量, ctxp = request.getContextPath()
 log.css                              定义日至窗口的样式
 com.YAHOO.log.js                     日志类
 style.css                            显示样式
没有包含

另外里面的资源路径与前面保存的资源路径有关,须自行修改

完整的测试代码请到本人的网站上面下载或者留言

<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/include/header.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>test2.html</title>
<link rel="stylesheet" type="text/css" href="<%=ctxp%>/css/log.css">
<link rel="stylesheet" type="text/css" href="<%=ctxp%>/css/style.css">
<script type="text/javascript" src="<%=ctxp%>/js/com.YAHOO.log.js"></script>
<script type="text/javascript" src="<%=ctxp%>/js/com.inet.base.js"></script>
<script type="text/javascript" src="<%=ctxp%>/js/com.inet.inet.js"></script>
<script type="text/javascript" src="<%=ctxp%>/js/com.inet.http.js"></script>
<script type="text/javascript" src="<%=ctxp%>/js/com.inet.evnt.js"></script>
<script type="text/javascript" src="<%=ctxp%>/js/com.inet.xbar.js"></script>
<script type="text/javascript">

function toggleygLogger(el)
{
 if(el.value == "禁用日志")
 {
  ygLogger.disable();
  el.value = "显示日志";
 }
 else
 {
  ygLogger.enable();
  el.value = "禁用日志";
 }
}

function CreateLog(_doc)
{
 if(_doc == null || _doc == undefined)
 {
  _doc = window.document;
 }

 var _panel = _doc.getElementById("rightbar");
 
 if(_panel == null || _panel == undefined)
 {
  _panel = _doc.createElement("DIV");

  _panel.id = "rightbar";

  var _oH3 = _doc.createElement("H3");

  _oH3.innerHTML = "<input type=/"button/""
   + " onclick=/"javascript:void(toggleygLogger(this))/" value=/"禁用日志/"/>&nbsp;"
   + "<input type=/"button/""
   + " onclick=/"javascript:void(document.getElementById('LogDIV').innerHTML='')/" value=/"清空日志/"/>";

  var _oDiv = _doc.createElement("DIV");
  var _sCss = "top:0px; width:100%; height:400px; font-family:Arial, Helvetica, sans-serif;position:relative;overflow:auto;text-align:left;z-index:998;font-size:84%;";

  _oDiv.id = "LogDiv";
  _oDiv.style.cssText = _sCss;
  
  _doc.body.appendChild(_panel);

  _panel.appendChild(_oH3);
  _panel.appendChild(_oDiv);

  _panel.style.top  = "10px";
  _panel.style.left = "550px";

  _panel.style.width  = "360px";
  _panel.style.height = "445px";
 }
}

function InitLog(_doc)
{
 CreateLog(_doc);

 ygLogger.init(document.getElementById("LogDiv"));
 
 logger = new ygLogger("");
}

var xbar   = null;
var socket = null;

function connect(on)
{
 if(on == 0)
 {
  var host = document.oForm.host.value;
  var port = document.oForm.port.value;

  if(host == null || host == "")
  {
   alert("请填写主机地址 !");

   return;
  }
  if(port == null || port == "")
  {
   alert("请填写端口号 !");

   return;
  }
  
  logger.debug("连接到:" + host + ":" + port);
  
  alert("连接到: " + host + ":" + port);
  
  socket.connect(host, parseInt(port));
 }
 else if(on == 1)
 {
  socket.close();
 }
}

function sendmsg(msg)
{
 var str = window.document.oForm.msgTxt.value;

 if(str == null || str == "")
 {
  alert("请填写发送内容 !");

  return;
 }
 
 socket.send(str);
}

// 装载策略文件
function allowDomain0(port)
{
 policy = "/crossdomain.xml";

 function fun1()
 {
  com.inet.inet.Socket.loadPolicyFile("http://aaa:" + port + policy);
 }

 function fun2()
 {
  com.inet.inet.Socket.loadPolicyFile("http://localhost:" + port + policy);
 }

 function fun3()
 {
  com.inet.inet.Socket.loadPolicyFile("http://127.0.0.1:" + port + policy);
 }

 function fun4()
 {
  com.inet.inet.Socket.loadPolicyFile("http://chenyankui.com:" + port + policy);
 }

 setTimeout(fun1, 1500);
 setTimeout(fun2, 3500);
 setTimeout(fun3, 5500);
 setTimeout(fun4, 7500);
}

function allowDomain2(port)
{
 function fun1()
 {
  com.inet.inet.Socket.loadPolicyFile("xmlsocket://aaa:" + port);
 }

 function fun2()
 {
  com.inet.inet.Socket.loadPolicyFile("xmlsocket://localhost:" + port);
 }

 function fun3()
 {
  com.inet.inet.Socket.loadPolicyFile("xmlsocket://127.0.0.1:" + port);
 }

 function fun4()
 {
  com.inet.inet.Socket.loadPolicyFile("xmlsocket://chenyankui.com:" + port);
 }

 setTimeout(fun1, 1500);
 setTimeout(fun2, 3500);
 setTimeout(fun3, 5500);
 setTimeout(fun4, 7500);
}

function Init()
{
 try
 {
  InitLog();

  logger.debug("初始化日志成功 !");
  
  logger.debug("Flash Version:" + com.inet.inet.Socket.getFlashVersion());

  //com.inet.inet.Socket.setLogLevel("DEBUG");
  com.inet.inet.Socket.setLogLevel("INFO");

  //allowDomain0(7272);

  xbar = new XBar(400, 25, "#FFFFFF", "#333399");

  xbar.setCenter();

  socket = new com.inet.inet.Socket();

  socket.onXml = function(src)
  {
   logger.debug("[XML]: " + src);
  }

  socket.onData = function(src)
  {
   // logger.debug("[TXT]: " + src);

   var value = parseInt(src);

   xbar.setValue(value * 4);

   if(value < 10)
   {
    src = "0" + src;
   }
   
   xbar.setText("${percent}% 页面正在加载, 请稍候 !".replace("${percent}", src));

   if(value == 100)
   {
    alert("加载完成 !");

    xbar.show(false);
   }
  }
  
  socket.onClose = function()
  {
   alert("!!! Socket Closed !!!");
  }

  socket.onConnect = function(success)
  {
   if(success == true)
   {
    logger.debug("连接成功 !");
    
    xbar.setValue(0);

    xbar.setText("${percent}% 页面正在加载, 请稍候 !".replace("${percent}", "00"));

    // 显示进度条
    xbar.show(true);

    // socket.request("/flash/FlashProxyServlet");
    socket.request("<%=ctxp%>/XBarServlet?user=aaaa", "POST", "test=test&user=aaaa");
   }
   else
   {
    alert("连接失败 !");
   }
  }
 }
 catch(e)
 {
  alert(e.name + ":" + e.message);
 }
}

function closeServer()
{
 Http.sendRequest("http://127.0.0.1:7273/", null, "GET", true, null, null);
}

function test()
{
 test5();
}
</script>
</head>
<body onload="Init()" leftmargin="20" topmargin="10">
<OBJECT id="Socket" width="500" height="200" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
 <param NAME="movie" VALUE="<%=ctxp%>/fls/net.swf">
 <param NAME="quality" VALUE="high">
 <param name="bgcolor" value="#C0C0C0">
</OBJECT>

<form name="oForm">
 <table width="500" border="0" cellpadding="0" cellspacing="1" bgcolor="#FF0000">
  <tr>
   <td align="left" width="10%" bgcolor="#FFFFFF">
    &nbsp;<strong>主机:</strong>
    <!-- &nbsp;<input type="text" name="host" value="127.0.0.1"> -->
    &nbsp;
    <select name="host">
     <option value="aaa">aaa</option>
     <option value="localhost">localhost</option>
     <option value="127.0.0.1">127.0.0.1</option>
     <option value="196.168.0.1">196.168.0.1</option>
     <option value="chenyankui.com">chenyankui.com</option>
    </select>
   </td>
  </tr>
  <tr>
   <td align="left" width="10%" bgcolor="#FFFFFF">
    &nbsp;<strong>端口:</strong>
    &nbsp;
    <input type="text" name="port" value="8080">
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center" bgcolor="#FFFFFF">
    <textarea name="msgTxt" rows="10" cols="68"></textarea>
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center" bgcolor="#FFFFFF">
    <input type="button" value="连接" onclick="connect(0)">&nbsp;&nbsp;
    <input type="button" value="关闭" onclick="connect(1)">&nbsp;&nbsp;
    <input type="button" value="发送" onclick="sendmsg(1)">&nbsp;&nbsp;
    <input type="button" value="关闭服务器" onclick="closeServer()">&nbsp;&nbsp;
   </td>
  </tr>
 </table>
</form>
<br/>
</body>
</html>