SmartFoxServer 扩展连接MYSQL

                                          SmartFoxServer 扩展连接MYSQL

 

            由于项目的需要,最近几天一直在弄SmartFoxServer,SmartFoxServer真的非常棒,从接触它就发现深深的喜欢上了它,功能也非常强大,基于SmartFoxServer开发应用相对也比较简单,目前SmartFoxServer的中文文档资料在网上也非常的多。下面就SmartFoxServer扩展应用连接MYSQL遇到的问题讲一下,主要是自己做下笔记,方便以后查阅。

           SmartFoxServer中 MYSQL数据库配置:

           一:将MYSQL数据库驱动拷贝至SmartFoxServerPRO/jre/lib/ext目录中。

           二:在对应的Zone中添加如下配置:

           <DatabaseManager active="true">
                <Driver>com.mysql.jdbc.Driver</Driver>
                <ConnectionString>jdbc:mysql://localhost:3306/test</ConnectionString>
                <UserName>root</UserName>
                <Password></Password>
                <TestSQL><![CDATA[SELECT COUNT(*) FROM user]]></TestSQL>
                <MaxActive>10</MaxActive>
                <MaxIdle>10</MaxIdle>
                <OnExhaustedPool>fail</OnExhaustedPool>
                <BlockTime>5000</BlockTime>
            </DatabaseManager>

            这样SmartFoxServer就可以连接上MYSQL了,我之前一直配置不成功就是出现在<Driver>com.mysql.jdbc.Driver</Driver>这里,还有这里需设置为 active="true",我只记下需注意的地方,关于详细配置官方有详细文档 http://www.smartfoxserver.com/_cn/docs/。

            SmartFoxServer扩展中连接MYSQL,进行操作:

             关于用AS编写的扩展文件需要保存在 sfsExtensions/ 目录下,这个目录也是 SmartFoxServer PRO 中所有扩展的根目录。例如我们编写了一个AS脚本命名为dbMysql.as,那么怎么使用这个扩展脚本呢?我们只需要在config.xml 配置文件中你需要的使用的Zone中,添加<Extensions> <extension name="dbmysql" className="dbMysql.as" type="script" /></Extensions>,就配置上了。

客户端调用:

smartfox= new SmartFoxClient(true);

1:smartfox.addEventListener(SFSEvent.onExtensionResponse, onExtensionResponseHandler);客户端连接监听“SFSEvent.onExtensionResponse”。

2:smartfox.sendXtMessage( "dbmysql", "getUsers", {});

3:public function onExtensionResponseHandler(evt:SFSEvent):void {}//响应回调方法

服务器端:

/*
*  dbMysql.as
*/
------------------------------------------------------------------------------------------------------------
// a global variable
var dbase

function init()
{
    dbase = _server.getDatabaseManager()
}

function destroy()
{
    delete dbase
}

function handleRequest(cmd, params, user, fromRoom)
{
  if (cmd == "getUsers")
    {
        var t1 = getTimer()
        var sql = "SELECT * FROM user";
        queryRes = dbase.executeQuery(sql)
        var t2 = getTimer()
        var response = {}
        response._cmd = "getUsers"
        response.db = []
        if (queryRes != null)
        {
            for (var i = 0; i < queryRes.size(); i++)
            {
                var tempRow = queryRes.get(i)
                var item = {}
                item.name     = tempRow.getItem("name")
                item.pwd     = tempRow.getItem("pwd")
                item.id     = tempRow.getItem("id")
                response.db.push( item )
            }
        }
        else
            trace("DB Query failed")
        _server.sendResponse(response, -1, null, [user])
       
    }
}


function handleInternalEvent(evt)
{
    trace("Event received: " + evt.name)   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值