热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->flash 
站内搜索:
ActionScript 2.0之使用 XMLSocket 类
作者:qqhugo 来源:adobe 整理日期:2007-10-19

    ActionScript 提供了一个内置的 XMLSocket 类,它允许您打开与服务器的持续连接。套接字连接使服务器在信息可用时就向客户端发布(或推送)信息。如果没有持续连接,服务器必须等待一个 HTTP 请求。这种打开的连接消除了反应时间问题,它通常用于实时的应用程序,比如聊天。数据以单个字符串的形式在套接字连接上发送,它应该是 XML 格式的。可以使用 XML 类来组织数据。

    要创建套接字连接,必须创建服务器端应用程序来等待套接字连接请求,然后向 SWF 文件发送响应。这种类型的服务器端应用程序可用编程语言(例如 Java)来编写。

注意

XMLSocket 类不能自动穿过防火墙,因为 XMLSocket 没有 HTTP 隧道功能(这与实时消息传递协议 (RTMP) 不同)。如果您需要使用 HTTP 隧道,应考虑改用 Flash RemotingFlash Media Server(支持 RTMP)。

    您可以使用 XMLSocket 类的 connect()send() 方法通过套接字连接与服务器互相收发 XML。connect() 方法建立与 Web 服务器端口的套接字连接。send() 方法将 XML 对象传递给套接字连接中指定的服务器。

    调用 connect() 方法时,Flash Player 打开与服务器的 TCP/IP 连接,并使该连接保持打开状态,直到发生以下任一事件:

  • XMLSocket 类的 close() 方法被调用。
  • 对 XMLSocket 对象的引用不再存在。
  • Flash Player 退出。
  • 连接中断(例如,调制解调器断开连接)。

下面的示例创建一个 XML 套接字连接,并从 XML 对象 myXML 发送数据。要理解此脚本,请阅读注释行(用字符 // 表示):

//创建 XMLSocket 对象
var theSocket:XMLSocket = new XMLSocket();
// 使用 connect() 方法连接到站点上大于 1024 的空闲端口。
//输入 localhost 或 127.0.0.1 进行本地测试。
//对现场服务器,输入您的域 www.yourdomain.com
theSocket.connect("localhost", 12345);
// 显示关于连接的文本
theSocket.onConnect = function(myStatus) {
    if (myStatus) {
        conn_txt.text = "connection successful";
    } else {
        conn_txt.text = "no connection made";
    }
};
// 要发送的数据
function sendData() {
    var myXML:XML = new XML();
    var mySend = myXML.createElement("thenode");
    mySend.attributes.myData = "someData";
    myXML.appendChild(mySend);
    theSocket.send(myXML);
}
// 按钮发送数据
sendButton.onRelease = function() {
    sendData();
};
// 跟踪从套接字连接返回的数据
theSocket.onData = function(msg:String):Void {
    trace(msg);
};
相关文章