【收藏】Flex数据通讯
Flex/Flash 支持的数据通讯方式有:
http URLLoader
SOAP(webservice)
json
xml
flash remoting / AMF3
xmlsocket
socket(二进制)(自定义协议)
高并发的应用中用户状态可以用cookie,不用session
如果是多人实时交互如聊天系统,多人在线互动等应用模块 需要用socket进行通讯(与服务器建立长连接),服务器端可以自己写多线程Socket Server也可以基于现有开源的Socket lib进行开发,比如QuickServer和XSocket.
读取非实时交互数据如房间列表,游戏列表,用户信息等数据,目前推荐用flash remoting AMF3协议
以下是一个FLASH AS3写的Socket通讯类
package net
{
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class mySocket extends EventDispatcher
{
private var nStatus:int = 0;
private var ndx:int = 0;
private var packet:ByteArray;
private const REQ_PROCESS:int = 4;
private var packetlen:uint = 0;
public var port:int;
private var readpacket:ByteArray;
public var connected:Boolean = false;
private const REQ_DONE:int = 3;
public var host:String;
private var packetbody:ByteArray;
private var readbodypos:int = 8;
private const REQ_REQUEST:int = 0;
private var nreadPos:int = 0;
private const PACKET_HEADER_SIZE:int = 8;
private const REQ_BODY:int = 2;
private var nBodyLen:uint = 0;
private const REQ_ERROR:int = 5;
private const PACKET_BUFFER_SIZE:int = 16384;
private const REQ_HEADER:int = 1;
private var socket:Socket;
public function mySocket(param1:Boolean = false, param2:String = "String")
{
packetlen = 0;
nStatus = 0;
nreadPos = 0;
nBodyLen = 0;
ndx = 0;
connected = false;
readbodypos = PACKET_HEADER_SIZE;
packet = new ByteArray();
packetbody = new ByteArray();
readpacket = new ByteArray();
readpacket.end
相关文档:
由于本人最近忙于找工作和毕业设计,没有时间来继续这个系列, 只写了第一篇,自己也深感惭愧,这一篇介绍一下这个demo的整体架构吧,先贴下下载地址。http://download.csdn.net/source/2118707
目前服务端已完成登陆注册模块,使用Socket编程,TCP协议。等服务端完成将完整的编写一个系列的教程。~~
......
一、准备工作:
所需要的软件:
Tomcat 5: http://tomcat.apache.org/
FlexBuilder3 beta2 插件版: FB3_WWEJ_Plugin
Eclipse 3.3 : www.eclipse.org
或者
MyEclipse 6.0:http://www.myeclipseide.com/
Blazeds.war:http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-bin-3.2.0.39 ......
Flex DataGrid组件
实际上,DataGrid组件是属于列表组件的,之所以单独拿出来讲解,主要是因为 DataGrid组件有着很强大的功能,也有很多扩展的应用是在开发中经常用到的。DataGrid组件是按照行和列的形式显示数据的。有几个类是只有 DataGrid组件才能使用的,包括DataGridCellEditor类、DataGridColumn类和HeaderRendere ......
<?xml version="1.0"?>
<!-- charts/PredefinedAxisStyles.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<!--[CDATA[
//导入相关包
import mx.collections.ArrayCollection;
import mx.charts.*;
import mx.charts.ser ......
<?xml version="1.0"?>
<!-- Simple example to demonstrate the ColumnChart and BarChart controls. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="initApp()"
backgroundColor="#FFFFFF" width="350" height="125"
layout="absolute">
<!- ......