smartfoxserver java_SmartFoxServer Java扩展 例子 | 学步园

准备工具有:SmartFoxServerPro1.6.6,Eclipse 3.5,Adobe Flash CS4.

在写第一个Java扩展之前,你要确定自己的SmartFoxServer已经能正常工作。并且下面所说的所有路径都是从安装SmartFoxServer目录开始的。

大致有三步:

1.修改SFS自带的Flash文件,让它为我们向Java扩展发送请求;

2.自己写一个Java扩展,用来处理Flash的请求;

3.配置SFS服务器,让Flash的请求能找到我们的Java扩展。

第一步Flash修改:

我们将导入Server/webserver/webapps/root/Examples/AS2/01_simpleConnect下的simpleConnect.fla例子。

首先在“属性”下的“配置文件:Flash MX Settings”中点击“编辑”按钮,然后在“Flash”下的“脚本”列点击“设置”,最后点击“+”号添加Flash API/Actionscript 2.0和3.0两个文件夹。

接着我们开打动作面板,选中“Layer 1”后把里面的代码替换成:

/**

* SFS客户端访问服务器端的四个步骤:

* 1. smartfoxclient.connect(ip, port)//连接服务器。

* 2. smartfoxclient.login(zone, name)//加入服务器中的Zone。

* 3. this.autoJoin()//加入到Room中。

* 4. smartfoxclient.sendXtMessage("", "", arguments)//向服务器发送请求。

*/importit.gotoandplay.smartfoxserver.*

stop()

varip:String ="127.0.0.1"

varport:Number = 9339

varzone:String ="simpleChat"

vars:SmartFoxClient =newSmartFoxClient(true)

//试图连接服务器。

s.connect(ip, port)

//当connect()函数执行后被触发。

s.onConnection =function(status)

{

if(status) {

status_txt.text ="connection is successful."

s.login(zone,"zhangchen")

}else{

status_txt.text ="Can't connect!"

}

}

//当进入一个zone时该事件被触发(通常是访问login()函数期间)。

s.onRoomListUpdate =function(roomList:Object) {

this.autoJoin()

}

//当一个房间成功地被加入时触发。

s.onJoinRoom =function(roomObj)

{

varinfo:Object =newObject()

info.a ="abc"

info.b ="cba"

// helloworld决定调用哪个扩展,对应的是config.xml配置中中的name参数。

// cmd传递给handleRequest()方法中的第一个参数(String cmd)。

// info传递给handleRequest()方法中的第二个参数(ActionSrcriptObject aso)。

s.sendXtMessage("helloworld","cmd",info)

}

Java扩展步骤:

那现在我们就开始吧,给你的Java项目添加这几个类库:

SFS version 1.6.x是Server/lib/目录下的jysfs.jar, json.jar, json-lib-2.1-jdk15.jar三个类库。

SFS version 1.5.x是Server/lib/目录下的jysfs.jar, json.jar两个类库。

SFS version 1.4.x是Server/目录下的smartfoxserver.jar

让我们来写第一个Java扩展,需要做的就是让自己的类必须去继承AbstractExtension类,这是一个抽象类,需要实现未实现的方法,有:init(), destroy(), handleRequest(), handleInternalEvent()。我们目前所关心的就是handleRequest方法,它就是用来处理客户端的请求。

HelloWorld.java

package test;

import it.gotoandplay.smartfoxserver.data.User;

import it.gotoandplay.smartfoxserver.events.InternalEventObject;

import it.gotoandplay.smartfoxserver.extensions.AbstractExtension;

import it.gotoandplay.smartfoxserver.lib.ActionscriptObject;

public class HelloWorld extends AbstractExtension {

@Override

public void handleRequest(String cmd, ActionscriptObject aso, User user,

int arg3) {

System.out.println(aso.getString("a"));//通过sendXtMessage()传递来的信息

System.out.println(aso.getString("b"));

}

@Override

public void handleRequest(String cmd, String[] arg1, User user, int arg3) {

//我们暂时不需要在这里做什么。

}

@Override

public void handleInternalEvent(InternalEventObject arg0) {

//我们暂时不需要在这里做什么。

}

}

配置SFS服务器:

配置文件在Server/目录下,我们去找一个 name=” simpleChat”。我们在中加入:。

将eclipse编译的HelloWorld.class复制到Server/javaExtensions/目录下,注意在javaExtensions目录下还要创建自己创建HelloWorld.java时的路径。

最后来试试看吧!

先启动你的服务器,然后输入网址:后点击Browse Examples在选择Simple Connect。在启动后的dos界面里看看输出结果吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值