SmartFoxServer 扩展连接MYSQL
2009-02-24 09:03
369 查看
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)
}
由于项目的需要,最近几天一直在弄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)
}
相关文章推荐
- SmartFoxServer 扩展连接MYSQL(zz)
- php pdo连接mysql必须扩展
- PHP 通过MYSQL扩展库 连接MYSQL例子
- 【转】用SmartFoxServer做数据库连接扩展(2)-U吧
- 【转】用SmartFoxServer做数据库连接扩展(1)-U吧
- SmartFoxServer 连接 mysql
- ZendFramework中打开Pdo扩展连接MySql
- php yii连接mysql配置扩展
- php之mysql扩展库方式连接数据库
- 从项目上一个子查询扩展学习开来:mysql的查询、子查询及连接查询
- java 连接 MySQL
- 一个本地DNS解析和mysql授权导致的Mysq连接失败问题(Access denied for user 'loan'@'kfcsdb1' (using password: YES))
- MySql连接数据库
- phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.
- JAVA连接ACCESS,SQL Server,Mysql ,Oracle
- oracle通过dblink连接Mysql
- C/C++中调用api设置mysql连接的编码方式
- MYSQL不能从远程连接的一个解决方法
- C/C++连接数据库MySQL(自己写的一个通讯录软件,供大家学习交流)