window.runtime 属性window.runtime.flash.net.XMLSocket
继承XMLSocket Inheritance EventDispatcher Inheritance Object

XMLSocket 类可实现客户端套接字,从而使 Flash Player 或 AIR 应用程序可以与由 IP 地址或域名标识的服务器计算机进行通信。对于要求滞后时间较短的客户端/服务器应用程序,如实时聊天系统,XMLSocket 类非常有用。 传统的基于 HTTP 的聊天解决方案频繁轮询服务器,并使用 HTTP 请求来下载新的消息。与此相对照,XMLSocket 聊天解决方案保持与服务器的开放连接,这一连接允许服务器即时发送传入的消息,而无需客户端发出请求。若要使用 XMLSocket 类,服务器计算机必须运行可识别 XMLSocket 类使用的协议的守护程序。下面的列表说明了该协议:

XMLSocket.connect() 方法只能连接到端口号大于等于 1024 的 TCP 端口。 这种限制的一个后果是,向与 XMLSocket 对象通信的服务器守护程序分配的端口号也必须大于等于 1024。 端口号小于 1024 的端口通常用于系统服务(如 FTP、Telnet 和 HTTP),因此,出于安全方面的考虑,禁止 XMLSocket 对象使用这些端口。 这种端口号方面的限制可以减少不恰当地访问和滥用这些资源的可能性。

将服务器设置为与 XMLSocket 对象进行通信可能会遇到一些困难。 如果您的应用程序不需要进行实时交互,请使用 URLLoader 类,而不要使用 XMLSocket 类。 若要使用 XMLSocket 类的方法,您必须先使用构造函数 new XMLSocket 创建一个 XMLSocket 对象。

在使用此类时,请考虑以下安全模型:

但在 Adobe AIR 中,application 安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。

有关详细信息,请参阅以下部分:

另请参见

URLLoader.load()
URLLoader
Socket connections


属性
 属性定义方
  connected : Boolean
[只读 (read-only)] 指示此 XMLSocket 对象目前是否已连接。
XMLSocket
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
XMLSocket(host:String = null, port:int = 0)
创建一个新的 XMLSocket 对象。
XMLSocket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
关闭由 XMLSocket 对象指定的连接。
XMLSocket
  
connect(host:String, port:int):void
使用指定的 TCP 端口建立到指定 Internet 主机的连接。
XMLSocket
 Inherited
dispatchEvent(event:Event):Boolean
将事件调度到事件流中。
EventDispatcher
 Inherited
hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
send(object:*):void
将 object 参数中指定的 XML 对象或数据转换成字符串,并将其传输到服务器,后面跟有一个零 (0) 字节。
XMLSocket
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
 Inherited
toString():String
返回指定对象的字符串表示形式。
Object
 Inherited
valueOf():Object
返回指定对象的原始值。
Object
 Inherited
willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 InheritedFlash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时调度。EventDispatcher
  在服务器关闭套接字连接时调度。XMLSocket
  在成功调用 XMLSocket.connect() 方法后调度。XMLSocket
  在发送或接收原始数据后调度。XMLSocket
 InheritedFlash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。EventDispatcher
  在出现输入/输出错误并导致发送或接收操作失败时调度。XMLSocket
  若对 XMLSocket.connect() 方法的调用尝试连接到调用方安全沙箱外部的服务器或低于 1024 的端口,则进行调度。XMLSocket
属性详细信息
connected属性
connected:Boolean  [只读 (read-only)]

指示此 XMLSocket 对象目前是否已连接。还可以通过为 connect 事件和 ioError 事件注册来检查连接是否成功。

另请参见

构造函数详细信息
XMLSocket()构造函数
function XMLSocket(host:String = null, port:int = 0)

创建一个新的 XMLSocket 对象。 XMLSocket 对象开始时不与任何服务器连接。 必须调用 XMLSocket.connect() 方法将该对象连接到服务器。

参数
host:String (default = null) — 一个完全限定 DNS 域名,或 aaa.bbb.ccc.ddd 格式的 IP 地址。 也可指定 null 以连接到 SWF 文件所在的主机服务器。 如果执行调用的文件是正在 Web 浏览器中运行的 SWF 文件,则 host 必须与执行调用的文件位于同一个域中。
 
port:int (default = 0) — 用于建立连接的主机上的 TCP 端口号。 除非使用了策略文件,否则端口号必须大于等于 1024。

另请参见

方法详细信息
close()方法
function close():void

关闭由 XMLSocket 对象指定的连接。仅在服务器关闭连接时调度 close 事件;在调用 close() 方法时不调度该事件。

另请参见

connect()方法 
function connect(host:String, port:int):void

使用指定的 TCP 端口建立到指定 Internet 主机的连接。 除非使用策略文件,否则在默认情况下只能连接到端口 1024 或更高端口。

如果为 host 参数指定 null,则与调用 XMLSocket.connect() 的 文件所在的主机连接。 例如,如果执行调用的文件是从 www.adobe.com 下载的,则将 host 参数指定为 null 与输入 www.adobe.com 的 IP 地址效果相同。

可以在包含 内容的 HTML 页中设置 objectembed 标签的 allowNetworking 参数,防止 SWF 文件使用此方法。

有关详细信息,请参阅以下部分:

参数

host:String — 一个完全限定 DNS 域名,或 aaa.bbb.ccc.ddd 格式的 IP 地址。 也可指定 null 以连接到 SWF 文件所在的主机服务器。 如果执行调用的文件是正在 Web 浏览器中运行的 SWF 文件,则 host 必须与该文件位于同一个域中。
 
port:int — 用于建立连接的主机上的 TCP 端口号。 除非使用了策略文件,否则端口号必须大于等于 1024。


事件
securityError:SecurityErrorEvent — 连接操作试图连接到调用方安全沙箱外部的服务器,和/或试图连接到端口号低于 1024 的端口。 可以通过在服务器上使用 XMLSocket 策略文件来解决这两个问题。
 
data:DataEvent — 在收到原始数据时调度。
 
connect:Event — 在建立网络连接后调度。

引发
SecurityError — 本地不受信任的 文件可能无法与 Internet 进行通信。 可通过将此文件重新分类为只能与远程内容交互或受信任来解决此问题。
 
SecurityError — 您不能指定高于 65535 的套接字端口。

另请参见

send()方法 
function send(object:*):void

object 参数中指定的 XML 对象或数据转换成字符串,并将其传输到服务器,后面跟有一个零 (0) 字节。如果 object 是一个 XML 对象,则该字符串是此 XML 对象的 XML 文本表示形式。发送操作是异步的;它将立即返回,但数据可能会以后传输。XMLSocket.send() 方法不返回指示数据是否成功传输的值。

如果不是使用 XMLSocket.connect() 将 XMLSocket 对象连接到服务器,则 XMLSocket.send() 操作失败。

参数

object:* — 一个要传输到服务器的 XML 对象或其它数据。


引发
IOError — XMLSocket 对象未与服务器连接。

另请参见

事件详细信息
close 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CLOSE

在服务器关闭套接字连接时调度。仅在服务器关闭连接时调度 close 事件;在调用 XMLSocket.close() 方法时不调度该事件。

Event.CLOSE 常量定义 close 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已关闭其连接的对象。
connect 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CONNECT

在成功调用 XMLSocket.connect() 方法后调度。

Event.CONNECT 常量定义 connect 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已建立网络连接的 Socket 或 XMLSocket 对象。
data 事件  
事件对象类型: flash.events.DataEvent
属性 DataEvent.type = flash.events.DataEvent.DATA

在发送或接收原始数据后调度。

定义 data 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
data加载到 Flash Player 或 Adobe AIR 中的原始数据。
target接收数据的 XMLSocket 对象。
ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

在出现输入/输出错误并导致发送或接收操作失败时调度。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID与特定错误关联的引用数字。
target发生输入/输出错误的网络对象。
text要显示为错误消息的文本。
securityError 事件  
事件对象类型: flash.events.SecurityErrorEvent
属性 SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

若对 XMLSocket.connect() 方法的调用尝试连接到调用方安全沙箱外部的服务器或低于 1024 的端口,则进行调度。

SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target报告安全错误的网络对象。
text要显示为错误消息的文本。

另请参见