12.4.4 XMLSocket类

  虽然使用XMLSocket类的构造函数配合new关键字,就可以创建一个XMLSocket对象。但是XMLSokect对象的使用却涉及很多周边的处理。XMLSocket连接,并不是处理远程XML文件的最佳方式。

XMLSocket是一个低层次的通讯对象,能够提供较低级别的读写控制,但是服务器端必须提供XML套接字的服务,而且FlashPlayer中需要指派相应的端口。

端口是一种有限的资源。端口号小于1024的端口通常用于系统服务,例如FTP的常用端口是21,而HTTP协议的常用端口是80。禁止XMLSocket对象使用这些低端的端口,可以防止不恰当地访问和滥用这些资源,以维护服务器的性能。ActionScript 3.0中,XMLSocket.connect()方法只能连接到端口号大于等于1024TCP端口。服务器端与XMLSocket对象通信的服务程序,也需要分配大于等于1024的端口号。

如果仅仅是为了读取服务器端的XML文件,应该使用URLLoader类,而不是望文生义的利用XMLSocket类。使用URLLoader类几乎不必关心端口和通讯过程的细节,将返回所需的XML数据。

XMLSocket类的存在意义在于它实现了XML信息的套接字操作,XML消息通过全双工TCP/IP流套接字连接发送。这种双向的数据流动可以持续进行,通过XMLSocket连接发送和接收的XML消息的数量没有限制,并且每个XML消息都是一个完整的XML文档。

如果服务器运行了相应的响应服务,就可以在客户端和服务器之间建立持续的信息传输通道。服务器即时发送传入的消息,而无需客户端发出请求。在建立多用户聊天室程序时,每个用户可以向服务器发送信息,服务器可以向客户发出信息。这就避免了客户端的定时查询。如果没有XMLSocket类,开发者必须在客户端执行周期性的数据查询,以获得新的聊天记录,这样的查询如果过于频繁,则服务器的读取负担很重。如果这种查询间隔太长,客户端又不能及时的得到聊天的消息。

你可能感兴趣的:(12.4.4 XMLSocket类)