我使用这段代码来异步运行。服务器:
int main(int argc, char ** argv)
{
cppcms::service service(argc, argv);
booster::intrusive_prt<gameServer> c = new gameServer(service);
service.applications_pool().mount(c);
service.run();
}
在gameServer类中,我有这些代码:
session().reset_session();
session()["username"] = "admin";
session().save();
...
if(!session().load())
std::cerr<<" session doesn't load";
当我编译并运行程序时,显示session doesn't load
消息。如果我用sync替换main
函数。显示session().load()
和session().save()
,没有错误,session["username"]
可以显示。
这是我的配置文件
{
...
"file_server" : { "enable" : true, "document_root" : "." },
"session :
{
"expire" : "browser",
"timeout" : 604800,
"location" : "server",
"server" : { "storage" : "files" }
}
}
我的代码有什么问题?
session().load()
应该是异步应用程序会话处理的第一条语句
你真的不需要检查状态。
更改会话后调用save。
不要在结尾调用"load()"