主题:  Flash通用多人服务器测试 ! Flash MUS

BBDD

职务:普通成员
等级:1
金币:0.0
发贴:80
#12001/2/9 16:07:29
Flash的Multiuser server

通过XML socket

IP: 210.77.158.21 port:2000


------------------------------------------

Flash发送消息格式


系统返回格式


/*===========================================
命令列表

// 登入退出命令,没连数据库所以不需要密码
no database version
logout server,kill client Thread



/*===================================================
//movie command
-> 获取当前movie名字
-> 获取有多少movie
/*===================================================
//group command
建立一个组并自动加入
加入一个组
离开一个组

/*===================================================
//message command
发送命令给一个人或组
->

*/


下面是将要加入的命令添加中 (已经完成)


-> 获取所有组名字
-> 获取组的个数
-> 获取组里人名
-> 获取组里人的各数


=====================================================

有兴趣的测试一下,请告诉我有什么bug,渴望建议
有了这个做Flash多人游戏就变的简单 hehe


对了,所有人登陆成功后自动加入 Allusers组

因为我对shockwave的mus比较熟,所以这个也是按照那个模式做的

编辑历史:[这消息被BBDD编辑过(编辑时间2001-02-09 16:09:42)]
[这消息被BBDD编辑过(编辑时间2001-02-09 21:25:19)]


BBDD

职务:普通成员
等级:1
金币:0.0
发贴:80
#22001/2/9 21:21:17
命令都完成了 : )

回家睡觉



BBDD

职务:普通成员
等级:1
金币:0.0
发贴:80
#32001/2/10 10:33:36
使用教程 (1)
该服务器通过 Flash XML socket来传数据.

在Flash端用一般用下面的办法来连接


生成新的XMLSocket实例
mySocket = new XMLSocket();

设置一旦连接上后执行的(方法)函数
mySocket.onConnect = handleConnect;

设置一旦断开连接后执行的(方法)函数
mySocket.onClose = handleClose;

设置当有XML数据从服务器端传过来的时候执行的方法.
mySocket.onXML = handleIncoming;

连接服务器,第一个参数是服务器地址,第二个是端口号
mySocket.connect("192.168.2.57", 2000)



function handleConnect (succeeded) {
如果连接成功了....
if (succeeded) {
.......
} else {
......
}
}


根据一开始的设置,一旦有XML数据来了就会执行这个方法
function handleIncoming (msg) {

因为从服务器返回的只有一个结点的数据,所以对数据的提取都用
*.firstChild.*
比如收到这个数据

那么
msg.firstChild.nodeName=="SYS"
msg.firstChild.attributes.MSG=="OK"
msg.firstChild.attributes.TAG=="SS"

}



如何发送XML数据呢?

比如要把发送到服务器端

新的XML文档实例
var xmlMsg = new XML();
var ack = xmlMsg.createElement("CMD");
ack.attributes.CON = "MSG";
ack.attributes.MSG = "123";
ack.attributes.USN = "BBDD";
xmlMsg.appendChild(ack);

发送
mySocket.send(xmlMsg);







--------------------------------------------------------------------------------
使用教程(2)
服务器通讯的结构是

根据不同Flash内容分为很多movie,每个movie下有很多组(group),每个组里有很多人.

movie间不能通讯因为他们没任何关系,同一个movie里可以任意通讯.

(现在的版本movie间不能通讯还没有实现)

一般登陆过程

首先你要先连接到服务器,如何连接见教程(1).
然后向服务器发送
如果你的名字已经被用了,服务器会返回
如何接受服务器返回讯息请看教程(1)

所有人进来后都会自动进入一个Allusers组

离开

对组的管理

建立一个组并自动加入
加入一个组
离开一个组

获取所有组名字
->服务器返回

获取组的个数
-> 服务器返回

获取组里人名
-> 服务器返回

获取组里人的各数
-> 服务器返回

发送消息(可传送自己的消息并定义标志)


发送命令给一个人或组,如果同时有组名和用户名,用户名会被忽略
-> 服务器返回






编辑历史:[这消息被BBDD编辑过(编辑时间2001-02-10 10:34:13)]
[这消息被BBDD编辑过(编辑时间2001-02-10 10:36:55)]