异步中的cppcms会话。模式

时间:2013-05-09 01:57:02

标签: c++ session asynchronous cppcms

我使用此代码运行异步。服务器:

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消息。如果我用同步替换main函数。服务器并移除session().load()session().save(),没有错误,可以显示session["username"]

这是我的配置文件

{
  ...
  "file_server" : { "enable" : true, "document_root" : "." },
  "session : 
  {
    "expire" : "browser",
    "timeout" : 604800,
    "location" : "server",
    "server" : { "storage" : "files" }
  }
}

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

session().load()应该是异步应用程序的会话处理中的第一个语句

您根本不需要检查状态。

更改会话后,请调用save。

你最后没有调用“load()”